提交 20129fff authored 作者: zjm's avatar zjm

feat(单位模块): 添加了单位逻辑注释

添加了单位逻辑注释
上级 f1ba6600
...@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; ...@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @author huangxiahao * @author huangxiahao
*/ */
@SpringBootApplication(scanBasePackages = { @SpringBootApplication(scanBasePackages = {
"com.tykj.carrier.*" "com.tykj.*"
}) })
public class BlockAtionpplication { public class BlockAtionpplication {
......
...@@ -37,7 +37,7 @@ public class TraceabilityParsingData { ...@@ -37,7 +37,7 @@ public class TraceabilityParsingData {
@ApiModelProperty(value = "操作时间") @ApiModelProperty(value = "操作时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date operationTime; private LocalDateTime operationTime;
@ApiModelProperty(value = "相关载体id") @ApiModelProperty(value = "相关载体id")
private String carrierIds; private String carrierIds;
...@@ -45,6 +45,13 @@ public class TraceabilityParsingData { ...@@ -45,6 +45,13 @@ public class TraceabilityParsingData {
@ApiModelProperty(value = "单位名称") @ApiModelProperty(value = "单位名称")
private String unitName; private String unitName;
@ApiModelProperty(value = "发起单位")
private String initiateUnitName;
@ApiModelProperty(value = "接收单位")
private String receiveUnitName;
@ApiModelProperty(value = "对应业务创建时间") @ApiModelProperty(value = "对应业务创建时间")
private String time; private String time;
......
package com.tykj.dev.device.block.run;
import com.tykj.dev.device.block.service.BlockService;
import com.tykj.dev.misc.base.BlockBusinessEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Service;
/**
* @program: device-back
* @description: todo
* @author: zjm
* @create: 2022-12-21 16:58
**/
@Service
@Slf4j
public class BlockRun implements CommandLineRunner {
@Autowired
BlockService blockService;
@Override
public void run(String... args) throws Exception {
// log.info("添加区块业务类型开始");
//// for (BlockBusinessEnum value : BlockBusinessEnum.values()) {
//// if (value.subCode>19) {
//// blockService.subRegister(value.name);
//// }
//// }
// log.info("添加区块业务类型结束");
}
}
...@@ -33,7 +33,7 @@ public class BlockDataServiceImpl implements BlockDataService { ...@@ -33,7 +33,7 @@ public class BlockDataServiceImpl implements BlockDataService {
@Override @Override
public BlockData findBillTypeAndBillId(Integer billType, Integer billId) { public BlockData findBillTypeAndBillId(Integer billType, Integer billId) {
List<BlockData> allByBillTypeAndBillId = blockDataDao.findAllByBillTypeAndBillId(billType, billId).stream().sorted(Comparator.comparing(BlockData::getCreateTime).reversed()).collect(Collectors.toList()); List<BlockData> allByBillTypeAndBillId = blockDataDao.findAllByBillTypeAndBillId(billType, billId).stream().sorted(Comparator.comparing(BlockData::getId).reversed()).collect(Collectors.toList());
if (allByBillTypeAndBillId.size()>0){ if (allByBillTypeAndBillId.size()>0){
return allByBillTypeAndBillId.get(0); return allByBillTypeAndBillId.get(0);
}else { }else {
...@@ -67,12 +67,6 @@ public class BlockDataServiceImpl implements BlockDataService { ...@@ -67,12 +67,6 @@ public class BlockDataServiceImpl implements BlockDataService {
} }
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
private TraceabilityParsingData toLocalDateTime(TraceabilityParsingData traceabilityParsingData){
String localTime = df.format(traceabilityParsingData.getOperationTime());
traceabilityParsingData.setOperationTime(null);
traceabilityParsingData.setTime(localTime);
return traceabilityParsingData;
}
} }
...@@ -34,7 +34,7 @@ public class BlockServiceImpl implements BlockService { ...@@ -34,7 +34,7 @@ public class BlockServiceImpl implements BlockService {
private Integer systemId=2; private Integer systemId=2;
@Override @Override
public BcRegister subRegister( String subName) { public BcRegister subRegister(String subName) {
SortedMap<Object, Object> request = getRequest(); SortedMap<Object, Object> request = getRequest();
request.put("systemId", systemId); request.put("systemId", systemId);
...@@ -54,7 +54,6 @@ public class BlockServiceImpl implements BlockService { ...@@ -54,7 +54,6 @@ public class BlockServiceImpl implements BlockService {
request.put("subCode", subCode); request.put("subCode", subCode);
request.put("content", content); request.put("content", content);
try { try {
BcText bcText = new RestTemplate().postForObject( BcText bcText = new RestTemplate().postForObject(
IP + ApI.CO_SEND_TEXT, IP + ApI.CO_SEND_TEXT,
request, request,
......
...@@ -153,8 +153,7 @@ public class DecommissioningQueryController { ...@@ -153,8 +153,7 @@ public class DecommissioningQueryController {
/** /**
* 区块溯源 * 区块溯源
*/ */
@GetMapping(value ="/repel/traceabilityParsing/{billId}")
@GetMapping(value ="/repel/checkTrueData/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源") @ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源")
public ResponseEntity traceabilityParsing( @PathVariable Integer billId){ public ResponseEntity traceabilityParsing( @PathVariable Integer billId){
return ResponseEntity.ok(deviceDecommissioningDetailService.traceabilityParsing(billId)); return ResponseEntity.ok(deviceDecommissioningDetailService.traceabilityParsing(billId));
......
...@@ -2,6 +2,7 @@ package com.tykj.dev.device.decommissioning.service.impl; ...@@ -2,6 +2,7 @@ package com.tykj.dev.device.decommissioning.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.github.wenhao.jpa.PredicateBuilder; import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications; import com.github.wenhao.jpa.Specifications;
...@@ -26,9 +27,11 @@ import com.tykj.dev.misc.base.BlockBusinessEnum; ...@@ -26,9 +27,11 @@ import com.tykj.dev.misc.base.BlockBusinessEnum;
import com.tykj.dev.misc.base.BusinessEnum; import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.base.StatusEnum; import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException; import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.DateUtil;
import com.tykj.dev.misc.utils.DeviceSeqUtil; import com.tykj.dev.misc.utils.DeviceSeqUtil;
import com.tykj.dev.misc.utils.JacksonUtil; import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.StringSplitUtil; import com.tykj.dev.misc.utils.StringSplitUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
...@@ -68,6 +71,7 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio ...@@ -68,6 +71,7 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
@Override @Override
public DeviceDecommissioningDetail saveDeviceDecommissioningDetail(DeviceDecommissioningDetail deviceDecommissioningDetail) { public DeviceDecommissioningDetail saveDeviceDecommissioningDetail(DeviceDecommissioningDetail deviceDecommissioningDetail) {
// log.info("[清退] 详情添加成功"); // log.info("[清退] 详情添加成功");
deviceDecommissioningDetail.setScriptJson(JacksonUtil.toJSon(deviceDecommissioningDetail.getScripts()));
DeviceDecommissioningDetail save = deviceDecommissioningDetailDao.save(deviceDecommissioningDetail); DeviceDecommissioningDetail save = deviceDecommissioningDetailDao.save(deviceDecommissioningDetail);
sendText(save.getId()); sendText(save.getId());
return save; return save;
...@@ -188,26 +192,28 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio ...@@ -188,26 +192,28 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
*/ */
@Override @Override
public BlockTraceabilityParsing traceabilityParsing(Integer billId) { public BlockTraceabilityParsing traceabilityParsing(Integer billId) {
BlockData billTypeAndBillId = blockDataService.findBillTypeAndBillId(BusinessEnum.DESTROY.id, billId); BlockData billTypeAndBillId = blockDataService.findBillTypeAndBillId(BusinessEnum.DECOMMISSIONING.id, billId);
BcRecord bcRecord = blockService.fetchRecord( BlockBusinessEnum.DESTROY.subCode, billTypeAndBillId.getRecordID()); BcRecord bcRecord = blockService.fetchRecord(BlockBusinessEnum.DECOMMISSIONING.subCode, billTypeAndBillId.getRecordID());
DeviceDecommissioningDetail deviceDecommissioningDetail = queryDeviceDecommissioningDetail(billId); DeviceDecommissioningDetail deviceDecommissioningDetail = queryDeviceDecommissioningDetail(billId);
DeviceDecommissioningDetail deviceDecommissioningDetail1 = JSON.parseObject(bcRecord.getData().getContent(), DeviceDecommissioningDetail.class); DeviceDecommissioningDetail deviceDecommissioningDetail1 = JSON.parseObject(bcRecord.getData().getContent(), DeviceDecommissioningDetail.class);
BlockTraceabilityParsing blockTraceabilityParsing = bcRecord.getData().toBlockTraceabilityParsing(); BlockTraceabilityParsing blockTraceabilityParsing = bcRecord.getData().toBlockTraceabilityParsing();
blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("退役") .billTypeName("退役")
.carrierIds(StringSplitUtil.stringListToString(deviceDecommissioningDetail.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceDecommissioningDetail.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceDecommissioningDetail.getSendUnit()) .initiateUnitName(deviceDecommissioningDetail.getSendUnit())
.receiveUnitName(deviceDecommissioningDetail.getReceiveUnit())
.documentNo(deviceDecommissioningDetail.getNum()) .documentNo(deviceDecommissioningDetail.getNum())
.operationTime(deviceDecommissioningDetail.getSendTime()) .operationTime(DateUtil.getLocalDateTime(deviceDecommissioningDetail.getSendTime()))
.operatorUserName(operatorName(deviceDecommissioningDetail)) .operatorUserName(operatorName(deviceDecommissioningDetail))
.build()); .build());
blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("退役") .billTypeName("退役")
.carrierIds(StringSplitUtil.stringListToString(deviceDecommissioningDetail1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceDecommissioningDetail1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceDecommissioningDetail1.getSendUnit()) .initiateUnitName(deviceDecommissioningDetail1.getSendUnit())
.receiveUnitName(deviceDecommissioningDetail1.getReceiveUnit())
.documentNo(deviceDecommissioningDetail1.getNum()) .documentNo(deviceDecommissioningDetail1.getNum())
.operationTime(deviceDecommissioningDetail1.getSendTime()) .operationTime(DateUtil.getLocalDateTime(deviceDecommissioningDetail1.getSendTime()))
.operatorUserName(operatorName(deviceDecommissioningDetail1)) .operatorUserName(operatorName(deviceDecommissioningDetail1))
.build()); .build());
blockTraceabilityParsing.setBlockData(deviceDecommissioningDetail1); blockTraceabilityParsing.setBlockData(deviceDecommissioningDetail1);
...@@ -244,7 +250,7 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio ...@@ -244,7 +250,7 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
*/ */
public void sendText(Integer id){ public void sendText(Integer id){
DeviceDecommissioningDetail deviceDecommissioningDetail = queryDeviceDecommissioningDetail(id); DeviceDecommissioningDetail deviceDecommissioningDetail = queryDeviceDecommissioningDetail(id);
blockService.sendText(BlockBusinessEnum.DECOMMISSIONING.subCode, JSON.toJSONStringWithDateFormat(deviceDecommissioningDetail,"yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat), BusinessEnum.DECOMMISSIONING.id,id,deviceDecommissioningDetail.getSendUnit()); blockService.sendText(BlockBusinessEnum.DECOMMISSIONING.subCode, JacksonUtil.toJSon(deviceDecommissioningDetail), BusinessEnum.DECOMMISSIONING.id,id,deviceDecommissioningDetail.getSendUnit());
} }
...@@ -261,4 +267,53 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio ...@@ -261,4 +267,53 @@ public class DeviceDecommissioningDetailServiceImpl implements DeviceDecommissio
throw new ApiException(ResponseEntity.status(500).body("退役详情id没有找到:"+decommissioningId)); throw new ApiException(ResponseEntity.status(500).body("退役详情id没有找到:"+decommissioningId));
} }
} }
public static void main(String[] args) {
a aa = new a(new Date(), 1);
// String s = JSON.toJSONString(aa);
String s = JacksonUtil.toJSon(aa);
a a = JSON.parseObject(s, a.class);
boolean equals = a.equals(aa);
}
static class a{
/**
* 配发时间
*/
@ApiModelProperty(value = "配发时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date sendTime;
private Integer age;
public a() {
}
public a(Date sendTime, Integer age) {
this.sendTime = sendTime;
this.age = age;
}
public Date getSendTime() {
return sendTime;
}
public void setSendTime(Date sendTime) {
this.sendTime = sendTime;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
} }
...@@ -65,12 +65,10 @@ public class DeviceDestroyQueryController { ...@@ -65,12 +65,10 @@ public class DeviceDestroyQueryController {
public ResponseEntity checkTrueData( @PathVariable Integer billId){ public ResponseEntity checkTrueData( @PathVariable Integer billId){
return ResponseEntity.ok(deviceDestroyBillService.checkTrueData(billId)); return ResponseEntity.ok(deviceDestroyBillService.checkTrueData(billId));
} }
/** /**
* 区块溯源 * 区块溯源
*/ */
@GetMapping(value ="/traceabilityParsing/{billId}")
@GetMapping(value ="/checkTrueData/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源") @ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源")
public ResponseEntity traceabilityParsing( @PathVariable Integer billId){ public ResponseEntity traceabilityParsing( @PathVariable Integer billId){
return ResponseEntity.ok(deviceDestroyBillService.traceabilityParsing(billId)); return ResponseEntity.ok(deviceDestroyBillService.traceabilityParsing(billId));
......
...@@ -29,6 +29,7 @@ import com.tykj.dev.misc.base.BlockBusinessEnum; ...@@ -29,6 +29,7 @@ import com.tykj.dev.misc.base.BlockBusinessEnum;
import com.tykj.dev.misc.base.BusinessEnum; import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.base.StatusEnum; import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException; import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.DateUtil;
import com.tykj.dev.misc.utils.DeviceSeqUtil; import com.tykj.dev.misc.utils.DeviceSeqUtil;
import com.tykj.dev.misc.utils.JacksonUtil; import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.StringSplitUtil; import com.tykj.dev.misc.utils.StringSplitUtil;
...@@ -192,7 +193,7 @@ public class DeviceDestroyBillServiceImpl implements DeviceDestroyBillService { ...@@ -192,7 +193,7 @@ public class DeviceDestroyBillServiceImpl implements DeviceDestroyBillService {
.carrierIds(StringSplitUtil.stringListToString(deviceDestroyBill.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceDestroyBill.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceDestroyBill.getUnitName()) .unitName(deviceDestroyBill.getUnitName())
.documentNo(deviceDestroyBill.getNum()) .documentNo(deviceDestroyBill.getNum())
.operationTime(deviceDestroyBill.getDestroyTime()) .operationTime(DateUtil.getLocalDateTime(deviceDestroyBill.getDestroyTime()))
.operatorUserName(operatorName(deviceDestroyBill)) .operatorUserName(operatorName(deviceDestroyBill))
.build()); .build());
...@@ -201,7 +202,7 @@ public class DeviceDestroyBillServiceImpl implements DeviceDestroyBillService { ...@@ -201,7 +202,7 @@ public class DeviceDestroyBillServiceImpl implements DeviceDestroyBillService {
.carrierIds(StringSplitUtil.stringListToString(deviceDestroyBill1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceDestroyBill1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceDestroyBill1.getUnitName()) .unitName(deviceDestroyBill1.getUnitName())
.documentNo(deviceDestroyBill1.getNum()) .documentNo(deviceDestroyBill1.getNum())
.operationTime(deviceDestroyBill1.getDestroyTime()) .operationTime(DateUtil.getLocalDateTime(deviceDestroyBill1.getDestroyTime()))
.operatorUserName(operatorName(deviceDestroyBill1)) .operatorUserName(operatorName(deviceDestroyBill1))
.build()); .build());
blockTraceabilityParsing.setBlockData(deviceDestroyBill1); blockTraceabilityParsing.setBlockData(deviceDestroyBill1);
......
package com.tykj.dev.device.file.util;
import com.tykj.dev.device.file.entity.FileRet;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.List;
/**
* @program: device-back
* @description: todo
* @author: zjm
* @create: 2022-12-26 13:11
**/
public class FileMD5Util {
private static final char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f'};
public static void main(String[] args) {
//此处我测试的是我本机jdk源码文件的MD5值 93666872937c6c43fe9452ede6873460
String filePath = "/Users/zjm/tykj/wordmodel/1.docx";
String md5Hashcode2 = FileMD5Util.getFileMD5(new File(filePath));
System.out.println("MD5Util2计算文件md5值为:" + md5Hashcode2);
System.out.println("MD5Util2计算文件md5值的长度为:" + md5Hashcode2.length());
}
/**
* 根据文件路径集合计算文件的md5,多个文件使用,分割
* @param fileRets 文件实体的集合
* @return 文件的md5
*/
public static String fileRetToMd5(List<FileRet> fileRets){
StringBuffer stringBuffer=new StringBuffer();
fileRets.forEach(
fileRet -> {
stringBuffer.append(getFileMD5(new File(fileRet.getFilePath()))).append(",");
}
);
return stringBuffer.toString();
}
/**
* Get MD5 of a file (lower case)
* @return empty string if I/O error when get MD5
*/
public static String getFileMD5(File file) {
FileInputStream in = null;
try {
in = new FileInputStream(file);
FileChannel ch = in.getChannel();
return MD5(ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length()));
} catch (FileNotFoundException e) {
return "";
} catch (IOException e) {
return "";
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// 关闭流产生的错误一般都可以忽略
}
}
}
}
/**
* MD5校验字符串
* @param s String to be MD5
* @return 'null' if cannot get MessageDigest
*/
private static String getStringMD5( String s) {
MessageDigest mdInst;
try {
// 获得MD5摘要算法的 MessageDigest 对象
mdInst = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
byte[] btInput = s.getBytes();
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int length = md.length;
char str[] = new char[length * 2];
int k = 0;
for (byte b : md) {
str[k++] = hexDigits[b >>> 4 & 0xf];
str[k++] = hexDigits[b & 0xf];
}
return new String(str);
}
@SuppressWarnings("unused")
private static String getSubStr( String str, int subNu, char replace) {
int length = str.length();
if (length > subNu) {
str = str.substring(length - subNu, length);
} else if (length < subNu) {
// NOTE: padding字符填充在字符串的右侧,和服务器的算法是一致的
str += createPaddingString(subNu - length, replace);
}
return str;
}
private static String createPaddingString(int n, char pad) {
if (n <= 0) {
return "";
}
char[] paddingArray = new char[n];
Arrays.fill(paddingArray, pad);
return new String(paddingArray);
}
/**
* 计算MD5校验
* @param buffer
* @return 空串,如果无法获得 MessageDigest实例
*/
private static String MD5(ByteBuffer buffer) {
String s = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(buffer);
byte tmp[] = md.digest(); // MD5 的计算结果是一个 128 位的长整数,
// 用字节表示就是 16 个字节
char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符,
// 所以表示成 16 进制需要 32 个字符
int k = 0; // 表示转换结果中对应的字符位置
for (int i = 0; i < 16; i++) { // 从第一个字节开始,对 MD5 的每一个字节
// 转换成 16 进制字符的转换
byte byte0 = tmp[i]; // 取第 i 个字节
str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字节中高 4 位的数字转换, >>>,
// 逻辑右移,将符号位一起右移
str[k++] = hexDigits[byte0 & 0xf]; // 取字节中低 4 位的数字转换
}
s = new String(str); // 换后的结果转换为字符串
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return s;
}
}
...@@ -49,7 +49,7 @@ public class DeviceLossSelectController { ...@@ -49,7 +49,7 @@ public class DeviceLossSelectController {
* 区块溯源 * 区块溯源
*/ */
@GetMapping(value ="/checkTrueData/{billId}") @GetMapping(value ="/traceabilityParsing/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源") @ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源")
public ResponseEntity traceabilityParsing( @PathVariable Integer billId){ public ResponseEntity traceabilityParsing( @PathVariable Integer billId){
return ResponseEntity.ok(deviceLossService.traceabilityParsing(billId)); return ResponseEntity.ok(deviceLossService.traceabilityParsing(billId));
......
...@@ -20,6 +20,7 @@ import com.tykj.dev.device.loss.util.StringUtils; ...@@ -20,6 +20,7 @@ import com.tykj.dev.device.loss.util.StringUtils;
import com.tykj.dev.misc.base.BeanHelper; import com.tykj.dev.misc.base.BeanHelper;
import com.tykj.dev.misc.base.BlockBusinessEnum; import com.tykj.dev.misc.base.BlockBusinessEnum;
import com.tykj.dev.misc.base.BusinessEnum; import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.utils.DateUtil;
import com.tykj.dev.misc.utils.JacksonUtil; import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.StringSplitUtil; import com.tykj.dev.misc.utils.StringSplitUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -92,7 +93,7 @@ public class DeviceLossServiceImpl implements DeviceLossService { ...@@ -92,7 +93,7 @@ public class DeviceLossServiceImpl implements DeviceLossService {
.carrierIds(StringSplitUtil.stringListToString(deviceLoss.getDeviceLossVoList().stream().map(DeviceLossVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceLoss.getDeviceLossVoList().stream().map(DeviceLossVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceLoss.getUnitName()) .unitName(deviceLoss.getUnitName())
.documentNo(String.valueOf(deviceLoss.getId())) .documentNo(String.valueOf(deviceLoss.getId()))
.operationTime(deviceLoss.getLossDate()) .operationTime(DateUtil.getLocalDateTime(deviceLoss.getLossDate()))
.operatorUserName(operatorName(deviceLoss)) .operatorUserName(operatorName(deviceLoss))
.build()); .build());
...@@ -101,7 +102,7 @@ public class DeviceLossServiceImpl implements DeviceLossService { ...@@ -101,7 +102,7 @@ public class DeviceLossServiceImpl implements DeviceLossService {
.carrierIds(StringSplitUtil.stringListToString(deviceLoss1.getDeviceLossVoList().stream().map(DeviceLossVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceLoss1.getDeviceLossVoList().stream().map(DeviceLossVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceLoss1.getUnitName()) .unitName(deviceLoss1.getUnitName())
.documentNo(String.valueOf(deviceLoss1.getId())) .documentNo(String.valueOf(deviceLoss1.getId()))
.operationTime(deviceLoss1.getLossDate()) .operationTime(DateUtil.getLocalDateTime(deviceLoss1.getLossDate()))
.operatorUserName(operatorName(deviceLoss1)) .operatorUserName(operatorName(deviceLoss1))
.build()); .build());
blockTraceabilityParsing.setBlockData(deviceLoss1); blockTraceabilityParsing.setBlockData(deviceLoss1);
......
...@@ -2,6 +2,8 @@ package com.tykj.dev.misc.base; ...@@ -2,6 +2,8 @@ package com.tykj.dev.misc.base;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import java.util.List;
/** /**
* @author dengdiyi * @author dengdiyi
* 业务枚举 * 业务枚举
...@@ -13,92 +15,94 @@ public enum BlockBusinessEnum { ...@@ -13,92 +15,94 @@ public enum BlockBusinessEnum {
/** /**
* 入库业务 * 入库业务
*/ */
STORAGE(2, "入库业务"), STORAGE(1019, "入库业务"),
/** /**
* 配发业务 * 配发业务
*/ */
ALLOT(3, "配发业务"), ALLOT(1020, "配发业务"),
/** /**
* 自查业务 * 自查业务
*/ */
SELF_CHECK(4, "自查业务"), SELF_CHECK(1021, "自查业务"),
/** /**
* 维修业务 * 维修业务
*/ */
REPAIR(5, "维修业务"), REPAIR(1022, "维修业务"),
/** /**
* 核查业务 * 核查业务
*/ */
CONFIRM_CHECK(6, "核查业务"), CONFIRM_CHECK(1023, "核查业务"),
/** /**
* 核查统计业务 * 核查统计业务
*/ */
CONFIRM_CHECK_STAT(7, "核查统计"), CONFIRM_CHECK_STAT(1024, "核查统计"),
/** /**
* 核查详情业务 * 核查详情业务
*/ */
CONFIRM_CHECK_DETAIL(8, "核查详情"), CONFIRM_CHECK_DETAIL(1025, "核查详情"),
/** /**
* 申请业务 * 申请业务
*/ */
APPLY(9, "申请业务"), APPLY(1026, "申请业务"),
/** /**
* 维修退回 * 维修退回
*/ */
REPAIR_BACK(10, "维修退回"), REPAIR_BACK(1027, "维修退回"),
/** /**
* 维修继续送修 * 维修继续送修
*/ */
REPAIR_SEND(11, "维修业务"), REPAIR_SEND(1028, "维修继续送修"),
/** /**
* 销毁业务 * 销毁业务
*/ */
DESTROY(14, "销毁业务"), DESTROY(1029, "销毁业务"),
/** /**
* 清退业务 * 清退业务
*/ */
SEND_BACK(16, "清退业务"), SEND_BACK(1030, "清退业务"),
/** /**
* 清退异常处理 * 清退异常处理
*/ */
DECOMMISSIONING(17, "退役业务"), DECOMMISSIONING(1031, "退役业务"),
/** /**
* 新增配套设备 * 新增配套设备
*/ */
ADD_MATCHING_DEVICE(19, "新增配套设备"), ADD_MATCHING_DEVICE(1032, "新增配套设备"),
/** /**
* 工作交接 * 工作交接
*/ */
WORK_HANDOVER(21, "工作交接"), WORK_HANDOVER(1033, "交接"),
/** /**
* 退回 * 退回
*/ */
ALLOT_BACK(22, "退回业务"), ALLOT_BACK(1034, "退回业务"),
/** /**
* 报废 * 报废
*/ */
SCRAP(23, "报废业务"), SCRAP(1035, "报废业务"),
/** /**
* 丢失 * 丢失
*/ */
LOSS(24,"丢失业务"), LOSS(1036,"丢失业务"),
/** /**
* 找回 * 找回
*/ */
RETRIEVE(25,"找回业务"), RETRIEVE(1037,"找回业务"),
/** /**
* 重新入库 * 重新入库
*/ */
AGAINSTORAGE(26,"装备状态转换业务"); AGAINSTORAGE(1038,"装备状态转换业务");
public Integer subCode; public Integer subCode;
public String name; public String name;
} }
...@@ -71,7 +71,7 @@ public class ScrapQueryController { ...@@ -71,7 +71,7 @@ public class ScrapQueryController {
* 区块溯源 * 区块溯源
*/ */
@GetMapping(value ="/checkTrueData/{billId}") @GetMapping(value ="/traceabilityParsing/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源") @ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源")
public ResponseEntity traceabilityParsing( @PathVariable Integer billId){ public ResponseEntity traceabilityParsing( @PathVariable Integer billId){
return ResponseEntity.ok(scrapService.traceabilityParsing(billId)); return ResponseEntity.ok(scrapService.traceabilityParsing(billId));
......
...@@ -26,6 +26,7 @@ import com.tykj.dev.misc.base.BlockBusinessEnum; ...@@ -26,6 +26,7 @@ import com.tykj.dev.misc.base.BlockBusinessEnum;
import com.tykj.dev.misc.base.BusinessEnum; import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.base.StatusEnum; import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException; import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.DateUtil;
import com.tykj.dev.misc.utils.DeviceSeqUtil; import com.tykj.dev.misc.utils.DeviceSeqUtil;
import com.tykj.dev.misc.utils.JacksonUtil; import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.StringSplitUtil; import com.tykj.dev.misc.utils.StringSplitUtil;
...@@ -185,18 +186,20 @@ public class ScrapServiceImpl implements ScrapService { ...@@ -185,18 +186,20 @@ public class ScrapServiceImpl implements ScrapService {
blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("报废") .billTypeName("报废")
.carrierIds(StringSplitUtil.stringListToString(scrap.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(scrap.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(scrap.getSendUnit()) .initiateUnitName(scrap.getSendUnit())
.receiveUnitName(scrap.getReceiveUnit())
.documentNo(scrap.getNum()) .documentNo(scrap.getNum())
.operationTime(scrap.getSendTime()) .operationTime(DateUtil.getLocalDateTime(scrap.getSendTime()))
.operatorUserName(operatorName(scrap)) .operatorUserName(operatorName(scrap))
.build()); .build());
blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("报废") .billTypeName("报废")
.carrierIds(StringSplitUtil.stringListToString(scrap1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(scrap1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(scrap1.getSendUnit()) .initiateUnitName(scrap1.getSendUnit())
.receiveUnitName(scrap1.getReceiveUnit())
.documentNo(scrap1.getNum()) .documentNo(scrap1.getNum())
.operationTime(scrap1.getSendTime()) .operationTime(DateUtil.getLocalDateTime(scrap1.getSendTime()))
.operatorUserName(operatorName(scrap1)) .operatorUserName(operatorName(scrap1))
.build()); .build());
blockTraceabilityParsing.setBlockData(scrap1); blockTraceabilityParsing.setBlockData(scrap1);
......
...@@ -3,6 +3,7 @@ package com.tykj.dev.device.sendback.controller; ...@@ -3,6 +3,7 @@ package com.tykj.dev.device.sendback.controller;
import com.tykj.dev.config.swagger.AutoDocument; import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.sendback.entity.vo.*; import com.tykj.dev.device.sendback.entity.vo.*;
import com.tykj.dev.device.sendback.service.AgainStorageBillService; import com.tykj.dev.device.sendback.service.AgainStorageBillService;
import com.tykj.dev.device.sendback.service.DeviceRepelDetailService;
import com.tykj.dev.device.sendback.service.RepelQueryService; import com.tykj.dev.device.sendback.service.RepelQueryService;
import com.tykj.dev.device.task.service.TaskService; import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.vo.TaskSelectVo; import com.tykj.dev.device.task.subject.vo.TaskSelectVo;
...@@ -43,6 +44,9 @@ public class RepelQueryController { ...@@ -43,6 +44,9 @@ public class RepelQueryController {
@Autowired @Autowired
TaskUtils taskUtils; TaskUtils taskUtils;
@Autowired
DeviceRepelDetailService deviceRepelDetailService;
@GetMapping(value ="/repelTaskStatistical/{taskId}/{billId}") @GetMapping(value ="/repelTaskStatistical/{taskId}/{billId}")
@ApiOperation(value = "省、市清退任务的统计页面详情", notes = "省、市清退任务的统计页面") @ApiOperation(value = "省、市清退任务的统计页面详情", notes = "省、市清退任务的统计页面")
public ResponseEntity findRepelTaskStatisticals(@PathVariable Integer taskId, @PathVariable Integer billId){ public ResponseEntity findRepelTaskStatisticals(@PathVariable Integer taskId, @PathVariable Integer billId){
...@@ -186,4 +190,24 @@ public class RepelQueryController { ...@@ -186,4 +190,24 @@ public class RepelQueryController {
} }
/**
* 区块验证
*/
@GetMapping(value ="/checkTrueData/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的验证", notes = "根据业务id进行对应业务的验证")
public ResponseEntity checkTrueData( @PathVariable Integer billId){
return ResponseEntity.ok(deviceRepelDetailService.checkTrueData(billId));
}
/**
* 区块溯源
*/
@GetMapping(value ="/traceabilityParsing/{billId}")
@ApiOperation(value = "根据业务id进行对应业务的溯源", notes = "根据业务id进行对应业务的溯源")
public ResponseEntity traceabilityParsing( @PathVariable Integer billId){
return ResponseEntity.ok(deviceRepelDetailService.traceabilityParsing(billId));
}
} }
...@@ -24,6 +24,7 @@ import com.tykj.dev.device.sendback.service.DeviceRepelDetailService; ...@@ -24,6 +24,7 @@ import com.tykj.dev.device.sendback.service.DeviceRepelDetailService;
import com.tykj.dev.misc.base.BlockBusinessEnum; import com.tykj.dev.misc.base.BlockBusinessEnum;
import com.tykj.dev.misc.base.BusinessEnum; import com.tykj.dev.misc.base.BusinessEnum;
import com.tykj.dev.misc.exception.ApiException; import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.DateUtil;
import com.tykj.dev.misc.utils.JacksonUtil; import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.StringSplitUtil; import com.tykj.dev.misc.utils.StringSplitUtil;
import com.tykj.dev.misc.utils.StringUtils; import com.tykj.dev.misc.utils.StringUtils;
...@@ -217,18 +218,20 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService { ...@@ -217,18 +218,20 @@ public class DeviceRepelDetailServiceImpl implements DeviceRepelDetailService {
blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBusinessTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("清退") .billTypeName("清退")
.carrierIds(StringSplitUtil.stringListToString(deviceRepelDetail.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceRepelDetail.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceRepelDetail.getSendUnit()) .initiateUnitName(deviceRepelDetail.getSendUnit())
.receiveUnitName(deviceRepelDetail.getReceiveUnit())
.documentNo(deviceRepelDetail.getNum()) .documentNo(deviceRepelDetail.getNum())
.operationTime(deviceRepelDetail.getSendTime()) .operationTime(DateUtil.getLocalDateTime(deviceRepelDetail.getSendTime()))
.operatorUserName(operatorName(deviceRepelDetail)) .operatorUserName(operatorName(deviceRepelDetail))
.build()); .build());
blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder() blockTraceabilityParsing.setBlockTraceabilityParsingData(TraceabilityParsingData.builder()
.billTypeName("清退") .billTypeName("清退")
.carrierIds(StringSplitUtil.stringListToString(deviceRepelDetail1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList()))) .carrierIds(StringSplitUtil.stringListToString(deviceRepelDetail1.getScripts().stream().map(ScriptSaveVo::getSeqNumber).collect(Collectors.toList())))
.unitName(deviceRepelDetail1.getSendUnit()) .initiateUnitName(deviceRepelDetail1.getSendUnit())
.receiveUnitName(deviceRepelDetail1.getReceiveUnit())
.documentNo(deviceRepelDetail1.getNum()) .documentNo(deviceRepelDetail1.getNum())
.operationTime(deviceRepelDetail1.getSendTime()) .operationTime(DateUtil.getLocalDateTime(deviceRepelDetail1.getSendTime()))
.operatorUserName(operatorName(deviceRepelDetail1)) .operatorUserName(operatorName(deviceRepelDetail1))
.build()); .build());
blockTraceabilityParsing.setBlockData(deviceRepelDetail1); blockTraceabilityParsing.setBlockData(deviceRepelDetail1);
......
...@@ -185,6 +185,18 @@ ...@@ -185,6 +185,18 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>com.tykj</groupId>
<artifactId>dev-block</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.tykj.dev</groupId>
<artifactId>union</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <dependency>
<groupId>com.tykj</groupId> <groupId>com.tykj</groupId>
<artifactId>dev-apply</artifactId> <artifactId>dev-apply</artifactId>
......
server.port=8088 server.port=8090
spring.application.name=device-dev spring.application.name=device-dev
spring.datasource.url=jdbc:mysql://192.168.0.232:3307/device_master?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false spring.datasource.url=jdbc:mysql://192.168.0.232:3307/device_master?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
...@@ -13,15 +13,15 @@ spring.jpa.hibernate.ddl-auto=update ...@@ -13,15 +13,15 @@ spring.jpa.hibernate.ddl-auto=update
#spring.jpa.hibernate.ddl-auto=update #spring.jpa.hibernate.ddl-auto=update
#file.path=C:/Users/dengdiyi/Documents/file/ #file.path=C:/Users/dengdiyi/Documents/file/
# spring boot admin # spring boot admin
file.path=/Users/ozoz/data/ file.path=/Users/zjm/code/test-tu/
preview.path=http://192.168.102.169:8087/file/ preview.path=http://192.168.0.14:8090/file/
spring.boot.admin.client.url=http://localhost:8769 spring.boot.admin.client.url=http://localhost:8769
spring.boot.admin.client.instance.serviceBaseUrl=http://localhost:8087 spring.boot.admin.client.instance.serviceBaseUrl=http://localhost:8087
block.flag=true block.flag=true
readMachine.ip=192.168.101.201 readMachine.ip=192.168.101.201
qrcode.path = C:/Users/zsp/Desktop/qrcode/ qrcode.path = /Users/zjm/code/test-tu/
qrcode.preview.path=http://192.168.101.133:8087/code/ qrcode.preview.path=http://192.168.102.121:8087/code/
block.carrier.ip=http://localhost:8088
carrier.url = http://192.168.0.101:8087/configuration/saveConfiguration carrier.url = http://192.168.0.101:8087/configuration/saveConfiguration
file.matching.excel=/Users/zhoushaopan/excel/ file.matching.excel=/Users/zhoushaopan/excel/
...@@ -4,7 +4,7 @@ spring.datasource.url=jdbc:oscar://192.168.0.80:2003/OSRDB?useSSL=false&rewriteB ...@@ -4,7 +4,7 @@ spring.datasource.url=jdbc:oscar://192.168.0.80:2003/OSRDB?useSSL=false&rewriteB
spring.datasource.username=SYSDBA spring.datasource.username=SYSDBA
spring.datasource.password=szoscar55 spring.datasource.password=szoscar55
spring.jpa.database-platform=org.hibernate.dialect.OscarDialect spring.jpa.database-platform=org.hibernate.dialect.OscarDialect
#file.path=/opt/zb/ file.path=/opt/zb/
#preview.path=http://10.153.4.11:8088/equip/file/ #preview.path=http://10.153.4.11:8088/equip/file/
#preview.path=http://192.168.0.80:8088/equip/file/ preview.path=http://192.168.0.80:8088/equip/file/
block.flag=true block.flag=true
\ No newline at end of file
spring.datasource.driver-class-name=com.oscar.Driver spring.datasource.driver-class-name=com.oscar.Driver
#spring.datasource.url=jdbc:oscar://10.153.4.10:2003/OSRDB #spring.datasource.url=jdbc:oscar://10.153.4.10:2003/OSRDB
spring.datasource.url=jdbc:oscar://192.168.0.80:2003/OSRDB spring.datasource.url=jdbc:oscar://localhost:2003/OSRDB
spring.datasource.username=SYSDBA spring.datasource.username=SYSDBA
spring.datasource.password=szoscar55 spring.datasource.password=szoscar55
spring.jpa.database-platform=org.hibernate.dialect.OscarDialect spring.jpa.database-platform=org.hibernate.dialect.OscarDialect
...@@ -14,7 +14,7 @@ block.flag=true ...@@ -14,7 +14,7 @@ block.flag=true
readMachine.ip=192.168.101.202 readMachine.ip=192.168.101.202
qrcode.path = /opt/qrcode/ qrcode.path = /opt/qrcode/
qrcode.preview.path=http://192.168.0.80/equip/code/ qrcode.preview.path=http://localhost:8088/equip/code/
carrier.url = http://192.168.0.80:8088/carrier/configuration/saveConfiguration carrier.url = http://192.168.0.80:8088/carrier/configuration/saveConfiguration
......
...@@ -124,8 +124,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { ...@@ -124,8 +124,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// return o; // return o;
// } // }
// }) // })
// .anyRequest().authenticated() .anyRequest().authenticated()
.anyRequest().permitAll() // .anyRequest().permitAll()
.and() .and()
.formLogin() .formLogin()
.loginProcessingUrl("/userLogin") .loginProcessingUrl("/userLogin")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论