U盾管理
parent
b73f9521ae
commit
dac572e817
@ -0,0 +1,140 @@
|
||||
package com.glxp.api.controller.ud;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.glxp.api.annotation.AuthRuleAnnotation;
|
||||
import com.glxp.api.annotation.Log;
|
||||
import com.glxp.api.common.enums.ResultEnum;
|
||||
import com.glxp.api.common.res.BaseResponse;
|
||||
import com.glxp.api.common.util.ResultVOUtils;
|
||||
import com.glxp.api.constant.BusinessType;
|
||||
import com.glxp.api.controller.BaseController;
|
||||
import com.glxp.api.entity.anno.AnncmntDevEntity;
|
||||
import com.glxp.api.entity.auth.AuthAdmin;
|
||||
import com.glxp.api.entity.ud.UdInfoEntity;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import com.glxp.api.req.anno.AnncmntDevEntityRequest;
|
||||
import com.glxp.api.req.system.DeleteRequest;
|
||||
import com.glxp.api.req.ud.UdInfoEntityRequest;
|
||||
import com.glxp.api.res.PageSimpleResponse;
|
||||
import com.glxp.api.service.anno.AnncmntDevService;
|
||||
import com.glxp.api.service.ud.UdInfoService;
|
||||
import com.glxp.api.util.BeanCopyUtils;
|
||||
import com.glxp.api.util.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*
|
||||
*/
|
||||
@ApiIgnore
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/ud/info")
|
||||
public class UdInfoController extends BaseController {
|
||||
|
||||
private final UdInfoService udInfoService;
|
||||
|
||||
|
||||
@GetMapping("/list")
|
||||
public BaseResponse list(UdInfoEntityRequest request, BindingResult bindingResult) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
int offset = (request.getPage() - 1) * request.getLimit();
|
||||
Page<UdInfoEntity> pages = PageHelper.offsetPage(offset, request.getLimit());
|
||||
List<UdInfoEntity> list = udInfoService.list(getQueryWrapper(request));
|
||||
PageSimpleResponse<UdInfoEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
||||
pageSimpleResponse.setTotal(pages.getTotal());
|
||||
pageSimpleResponse.setList(list);
|
||||
|
||||
return ResultVOUtils.success(pageSimpleResponse);
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/save")
|
||||
@Log(title = "U盾管理", businessType = BusinessType.INSERT)
|
||||
public BaseResponse save(@RequestBody UdInfoEntity entity,
|
||||
BindingResult bindingResult) {
|
||||
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
AuthAdmin authAdmin = getUser();
|
||||
entity.setStatus("2");
|
||||
entity.setCheckStatus("2");
|
||||
entity.setCreateTime(new Date());
|
||||
entity.setCreateUser(authAdmin.getId()+"");
|
||||
entity.setUpdateTime(new Date());
|
||||
entity.setUpdateUser( authAdmin.getId()+"");
|
||||
boolean b = udInfoService.save(entity);
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
return ResultVOUtils.success("添加成功!");
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/edit")
|
||||
@Log(title = "U盾管理", businessType = BusinessType.UPDATE)
|
||||
public BaseResponse edit(@RequestBody @Valid UdInfoEntity entity,
|
||||
BindingResult bindingResult) {
|
||||
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
if (entity.getId() == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
UdInfoEntity originEntity = udInfoService.getById(entity.getId());
|
||||
if (originEntity == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
AuthAdmin authAdmin = getUser();
|
||||
entity.setUpdateTime(new Date());
|
||||
entity.setUpdateUser( authAdmin.getId()+"");
|
||||
boolean b = udInfoService.updateById(entity);
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
|
||||
return ResultVOUtils.success("修改成功!");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/delete")
|
||||
@Log(title = "U盾管理", businessType = BusinessType.DELETE)
|
||||
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
|
||||
|
||||
if (StringUtils.isEmpty(deleteRequest.getId())) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
boolean b = udInfoService.removeById(deleteRequest.getId());
|
||||
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
return ResultVOUtils.success();
|
||||
}
|
||||
|
||||
public static QueryWrapper<UdInfoEntity> getQueryWrapper(UdInfoEntityRequest request) {
|
||||
UdInfoEntity entity = new UdInfoEntity();
|
||||
BeanCopyUtils.copy(request, entity);
|
||||
QueryWrapper queryWrapper = new QueryWrapper(entity);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,201 @@
|
||||
package com.glxp.api.controller.ud;
|
||||
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.glxp.api.annotation.AuthRuleAnnotation;
|
||||
import com.glxp.api.annotation.Log;
|
||||
import com.glxp.api.common.enums.ResultEnum;
|
||||
import com.glxp.api.common.res.BaseResponse;
|
||||
import com.glxp.api.common.util.ResultVOUtils;
|
||||
import com.glxp.api.constant.BusinessType;
|
||||
import com.glxp.api.constant.Constant;
|
||||
import com.glxp.api.controller.BaseController;
|
||||
import com.glxp.api.entity.anno.AnncmntDevEntity;
|
||||
import com.glxp.api.entity.auth.AuthAdmin;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import com.glxp.api.req.system.DeleteRequest;
|
||||
import com.glxp.api.req.ud.UdProducePlanEntityRequest;
|
||||
import com.glxp.api.res.PageSimpleResponse;
|
||||
import com.glxp.api.service.auth.AuthAdminService;
|
||||
import com.glxp.api.service.ud.UdProducePlanService;
|
||||
import com.glxp.api.util.BeanCopyUtils;
|
||||
import com.glxp.api.util.GennerOrderUtils;
|
||||
import com.glxp.api.util.OrderNoTypeBean;
|
||||
import com.glxp.api.util.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*
|
||||
*/
|
||||
@ApiIgnore
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/ud/plan")
|
||||
public class UdProducePlanController extends BaseController {
|
||||
|
||||
private final UdProducePlanService udProducePlanService;
|
||||
|
||||
@Resource
|
||||
private AuthAdminService authAdminService;
|
||||
|
||||
@Resource
|
||||
GennerOrderUtils gennerOrderUtils;
|
||||
|
||||
|
||||
@GetMapping("/list")
|
||||
public BaseResponse list(UdProducePlanEntityRequest request, BindingResult bindingResult) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
Map<Long,String> userMap = authAdminService.getEmployeeNameMap();
|
||||
|
||||
int offset = (request.getPage() - 1) * request.getLimit();
|
||||
Page<UdProducePlanEntity> pages = PageHelper.offsetPage(offset, request.getLimit());
|
||||
List<UdProducePlanEntity> list = udProducePlanService.list(getQueryWrapper(request));
|
||||
for(UdProducePlanEntity entity:list){
|
||||
entity.setCreateUserName(StringUtils.isNotEmpty(entity.getCreateUser())?userMap.get(Long.parseLong(entity.getCreateUser())):"");
|
||||
entity.setAuditUserName(StringUtils.isNotEmpty(entity.getAuditUser())?userMap.get(Long.parseLong(entity.getAuditUser())):"");
|
||||
}
|
||||
|
||||
PageSimpleResponse<UdProducePlanEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
||||
pageSimpleResponse.setTotal(pages.getTotal());
|
||||
pageSimpleResponse.setList(list);
|
||||
|
||||
return ResultVOUtils.success(pageSimpleResponse);
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/save")
|
||||
@Log(title = "U盾制作计划管理", businessType = BusinessType.INSERT)
|
||||
public BaseResponse save(@RequestBody UdProducePlanEntity entity,
|
||||
BindingResult bindingResult) {
|
||||
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
String orderNo = gennerOrderUtils.getUDNo();
|
||||
AuthAdmin authAdmin = getUser();
|
||||
entity.setRealityNumber(0);
|
||||
entity.setStatus("2");
|
||||
entity.setProduceNo(orderNo);
|
||||
entity.setCreateTime(new Date());
|
||||
entity.setCreateUser(authAdmin.getId()+"");
|
||||
entity.setUpdateTime(new Date());
|
||||
entity.setUpdateUser( authAdmin.getId()+"");
|
||||
boolean b = udProducePlanService.save(entity);
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
return ResultVOUtils.success("添加成功!");
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/edit")
|
||||
@Log(title = "U盾制作计划管理", businessType = BusinessType.UPDATE)
|
||||
public BaseResponse edit(@RequestBody @Valid UdProducePlanEntity entity,
|
||||
BindingResult bindingResult) {
|
||||
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
if (entity.getId() == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
UdProducePlanEntity originEntity = udProducePlanService.getById(entity.getId());
|
||||
if (originEntity == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
AuthAdmin authAdmin = getUser();
|
||||
entity.setUpdateTime(new Date());
|
||||
entity.setUpdateUser( authAdmin.getId()+"");
|
||||
boolean b = udProducePlanService.updateById(entity);
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
|
||||
return ResultVOUtils.success("修改成功!");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/updateStatus")
|
||||
@Log(title = "U盾制作计划管理", businessType = BusinessType.DELETE)
|
||||
public BaseResponse updateStatus(@RequestBody UdProducePlanEntity entity,
|
||||
BindingResult bindingResult) {
|
||||
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
||||
}
|
||||
if (entity.getId() == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
UdProducePlanEntity originEntity = udProducePlanService.getById(entity.getId());
|
||||
if (originEntity == null) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
AuthAdmin authAdmin = getUser();
|
||||
originEntity.setUpdateTime(new Date());
|
||||
originEntity.setUpdateUser( authAdmin.getId()+"");
|
||||
originEntity.setStatus("1");
|
||||
boolean b = udProducePlanService.updateById(originEntity);
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
|
||||
return ResultVOUtils.success("修改成功!");
|
||||
}
|
||||
|
||||
|
||||
@AuthRuleAnnotation("")
|
||||
@PostMapping("/delete")
|
||||
@Log(title = "U盾制作计划管理", businessType = BusinessType.DELETE)
|
||||
public BaseResponse delete(@RequestBody DeleteRequest deleteRequest) {
|
||||
|
||||
if (StringUtils.isEmpty(deleteRequest.getId())) {
|
||||
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
||||
}
|
||||
boolean b = udProducePlanService.removeById(deleteRequest.getId());
|
||||
|
||||
if (!b) {
|
||||
return ResultVOUtils.error(ResultEnum.NOT_NETWORK);
|
||||
}
|
||||
return ResultVOUtils.success();
|
||||
}
|
||||
|
||||
public static QueryWrapper<UdProducePlanEntity> getQueryWrapper(UdProducePlanEntityRequest request) {
|
||||
UdProducePlanEntity entity = new UdProducePlanEntity();
|
||||
BeanCopyUtils.copy(request, entity);
|
||||
QueryWrapper queryWrapper = new QueryWrapper(entity);
|
||||
if(StringUtils.isNotBlank(request.getEndTime())){
|
||||
queryWrapper.le("produceTime",request.getEndTime());
|
||||
}
|
||||
if(StringUtils.isNotBlank(request.getStartTime())){
|
||||
queryWrapper.ge("produceTime",request.getStartTime());
|
||||
}
|
||||
if(StringUtils.isNotBlank(request.getEndAduditTime())){
|
||||
queryWrapper.le("auditTime",request.getEndAduditTime());
|
||||
}
|
||||
if(StringUtils.isNotBlank(request.getStartAduditTime())){
|
||||
queryWrapper.ge("auditTime",request.getStartAduditTime());
|
||||
}
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.glxp.api.dao.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.ud.UdInfoEntity;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface UdInfoMapper extends BaseMapper<UdInfoEntity> {
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.glxp.api.dao.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.glxp.api.entity.anno.AnncmntDevEntity;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface UdProducePlanMapper extends BaseMapper<UdProducePlanEntity> {
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
package com.glxp.api.entity.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "ud_info")
|
||||
public class UdInfoEntity implements Serializable {
|
||||
@TableId(value = "id")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 企业id
|
||||
*/
|
||||
@TableField(value = "companyId")
|
||||
private Integer companyId;
|
||||
|
||||
/**
|
||||
* 生产计划id
|
||||
*/
|
||||
@TableField(value = "producePlanId")
|
||||
private String producePlanId;
|
||||
|
||||
/**
|
||||
* U盾唯一ID
|
||||
*/
|
||||
@TableField(value = "uniqueId")
|
||||
private String uniqueId;
|
||||
|
||||
/**
|
||||
* U盾序列号
|
||||
*/
|
||||
@TableField(value = "serialNumber")
|
||||
private String serialNumber;
|
||||
|
||||
/**
|
||||
* 密文字符串
|
||||
*/
|
||||
@TableField(value = "ciphertext")
|
||||
private String ciphertext;
|
||||
|
||||
/**
|
||||
* 分配时间
|
||||
*/
|
||||
@TableField(value = "allocateTime")
|
||||
private Date allocateTime;
|
||||
|
||||
/**
|
||||
* 分配状态
|
||||
*/
|
||||
@TableField(value = "allocateStatus")
|
||||
private String allocateStatus;
|
||||
|
||||
/**
|
||||
* 校验时间
|
||||
*/
|
||||
@TableField(value = "checkTime")
|
||||
private Date checkTime;
|
||||
|
||||
/**
|
||||
* 校验时间
|
||||
*/
|
||||
@TableField(value = "checkStatus")
|
||||
private String checkStatus;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(value = "`createUser`")
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(value = "updateUser")
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
package com.glxp.api.entity.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName(value = "ud_produce_plan")
|
||||
public class UdProducePlanEntity implements Serializable {
|
||||
@TableId(value = "id")
|
||||
private Integer id;
|
||||
|
||||
/**
|
||||
* 制作单号
|
||||
*/
|
||||
@TableField(value = "produceNo")
|
||||
private String produceNo;
|
||||
|
||||
/**
|
||||
* 制作日期
|
||||
*/
|
||||
@TableField(value = "produceTime")
|
||||
@JsonFormat( pattern = "yyyy-MM-dd")
|
||||
private Date produceTime;
|
||||
|
||||
/**
|
||||
* 计划数量
|
||||
*/
|
||||
@TableField(value = "planNumber")
|
||||
private Integer planNumber;
|
||||
|
||||
/**
|
||||
* 实际数量
|
||||
*/
|
||||
@TableField(value = "realityNumber")
|
||||
private Integer realityNumber;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
@TableField(value = "auditTime")
|
||||
private Date auditTime;
|
||||
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
@TableField(value = "auditUser")
|
||||
private String auditUser;
|
||||
|
||||
/**
|
||||
* 审核人
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String auditUserName;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@TableField(value = "auditStatus")
|
||||
private String auditStatus;
|
||||
/**
|
||||
* U盾生产厂家
|
||||
*/
|
||||
@TableField(value = "manufacturer")
|
||||
private String manufacturer;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(value = "createUser")
|
||||
private String createUser;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String createUserName;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(value = "createTime")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(value = "updateUser")
|
||||
private String updateUser;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(value = "updateTime")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@TableField(value = "remark")
|
||||
private String remark;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.glxp.api.req.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UdInfoEntityRequest extends ListPageRequest {
|
||||
|
||||
/**
|
||||
* 生产计划id
|
||||
*/
|
||||
@TableField(value = "producePlanId")
|
||||
private String producePlanId;
|
||||
|
||||
/**
|
||||
* U盾唯一ID
|
||||
*/
|
||||
@TableField(value = "uniqueId")
|
||||
private String uniqueId;
|
||||
|
||||
/**
|
||||
* U盾序列号
|
||||
*/
|
||||
@TableField(value = "serialNumber")
|
||||
private String serialNumber;
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.glxp.api.req.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.glxp.api.util.page.ListPageRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UdProducePlanEntityRequest extends ListPageRequest {
|
||||
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* startTime
|
||||
*/
|
||||
private String startTime;
|
||||
|
||||
/**
|
||||
* endTime
|
||||
*/
|
||||
private String endTime;
|
||||
/**
|
||||
* startAduditTime
|
||||
*/
|
||||
private String startAduditTime;
|
||||
|
||||
/**
|
||||
* endAduditTime
|
||||
*/
|
||||
private String endAduditTime;
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.glxp.api.service.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.glxp.api.dao.anno.AnncmntDevMapper;
|
||||
import com.glxp.api.dao.ud.UdInfoMapper;
|
||||
import com.glxp.api.entity.anno.AnncmntDevEntity;
|
||||
import com.glxp.api.entity.ud.UdInfoEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UdInfoService extends ServiceImpl<UdInfoMapper, UdInfoEntity> {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.glxp.api.service.ud;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.glxp.api.dao.ud.UdInfoMapper;
|
||||
import com.glxp.api.dao.ud.UdProducePlanMapper;
|
||||
import com.glxp.api.entity.ud.UdInfoEntity;
|
||||
import com.glxp.api.entity.ud.UdProducePlanEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UdProducePlanService extends ServiceImpl<UdProducePlanMapper, UdProducePlanEntity> {
|
||||
|
||||
}
|
@ -0,0 +1,312 @@
|
||||
package com.glxp.api.util;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
|
||||
public class SoftKey {
|
||||
|
||||
private String myhex(byte indata)
|
||||
{
|
||||
String outstring;
|
||||
outstring=String.format("%X",indata);
|
||||
if(outstring.length()<2)outstring="0"+outstring;
|
||||
return outstring;
|
||||
}
|
||||
|
||||
//若某字节为负数则需将其转成无符号正数
|
||||
private long conver(byte temp){
|
||||
long tempInt = (int)temp;
|
||||
if(tempInt < 0){
|
||||
tempInt += 256;
|
||||
}
|
||||
return tempInt;
|
||||
}
|
||||
|
||||
//以下用于将16进制字符串转化为无符号长整型
|
||||
private int HexToInt(String s)
|
||||
{
|
||||
String [] hexch = { "0", "1", "2", "3", "4", "5", "6", "7",
|
||||
"8", "9", "A", "B", "C", "D", "E", "F"};
|
||||
int i, j;
|
||||
int r, n, k;
|
||||
String ch;
|
||||
|
||||
k = 1; r = 0;
|
||||
for (i = s.length(); i > 0; i--)
|
||||
{
|
||||
ch = s.substring(i - 1, i-1+1);
|
||||
n = 0;
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (ch.compareToIgnoreCase(hexch[j]) ==0 )
|
||||
{
|
||||
n = j;
|
||||
}
|
||||
}
|
||||
r += (n * k);
|
||||
k *= 16;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
public String StrEnc(String InString , String Key)//使用增强算法,加密字符串
|
||||
{
|
||||
|
||||
byte [] b,outb;
|
||||
byte []temp_b=InString.getBytes();
|
||||
byte [] temp=new byte[8],outtemp=new byte[8];
|
||||
int n,i,nlen,outlen;
|
||||
String outstring;
|
||||
|
||||
nlen = temp_b.length;
|
||||
nlen=nlen+1;
|
||||
if( nlen < 8 )
|
||||
outlen = 8;
|
||||
else
|
||||
outlen = nlen;
|
||||
b=new byte[outlen];
|
||||
outb=new byte[outlen];
|
||||
|
||||
for(n=0;n<nlen-1;n++)
|
||||
{
|
||||
b[n]=temp_b[n];
|
||||
}
|
||||
|
||||
outb=b.clone();
|
||||
|
||||
for( n = 0; n<=outlen - 8 ;n=n+ 8)
|
||||
{
|
||||
for (i = 0; i < 8; i++) temp[i] = b[i + n];
|
||||
EnCode(temp, outtemp, Key);
|
||||
for( i = 0 ;i<8;i++) outb[i + n] = outtemp[i];
|
||||
}
|
||||
|
||||
outstring = "";
|
||||
for (n = 0 ;n<= outlen - 1;n++)
|
||||
{
|
||||
outstring = outstring +myhex(outb[n]) ;
|
||||
}
|
||||
return outstring;
|
||||
}
|
||||
|
||||
public String StrDec(String InString , String Key)//使用增强算法,解密字符串
|
||||
{
|
||||
|
||||
byte [] b,outb;
|
||||
byte [] temp=new byte[8],outtemp=new byte[8];
|
||||
int n,i,nlen,outlen;
|
||||
String outstring,temp_string;
|
||||
|
||||
|
||||
nlen = InString.length();
|
||||
if( nlen < 16 ) outlen = 16;
|
||||
outlen = nlen / 2;
|
||||
b=new byte[outlen];
|
||||
outb=new byte[outlen];
|
||||
|
||||
i = 0;
|
||||
for (n = 1 ;n<= nlen ;n=n+2)
|
||||
{
|
||||
temp_string = InString.substring(n-1, n-1+2);
|
||||
b[i] = (byte)HexToInt(temp_string);
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
outb=b.clone();
|
||||
|
||||
for( n = 0; n<=outlen - 8 ;n=n+ 8)
|
||||
{
|
||||
for (i = 0; i < 8; i++) temp[i] = b[i + n];
|
||||
DeCode(temp, outtemp, Key);
|
||||
for( i = 0 ;i<8;i++) outb[i + n] = outtemp[i];
|
||||
}
|
||||
|
||||
outstring=new String(outb);
|
||||
outstring=outstring.trim();
|
||||
return outstring;
|
||||
}
|
||||
|
||||
public void EnCode(byte[] inb, byte[] outb, String Key )
|
||||
{
|
||||
|
||||
long cnDelta,y,z,a,b,c,d,temp_2;
|
||||
long [] buf=new long[16];
|
||||
int n,i,nlen;
|
||||
long sum;
|
||||
long temp,temp_1;
|
||||
long mask=4294967295L;
|
||||
|
||||
//UInt32 temp, temp_1;
|
||||
String temp_String ;
|
||||
|
||||
|
||||
cnDelta = 2654435769L;
|
||||
sum = 0;
|
||||
|
||||
nlen = Key.length();
|
||||
i = 0;
|
||||
for( n = 1 ;n<= nlen ;n=n+2)
|
||||
{
|
||||
temp_String =Key.substring(n-1, n-1+2);
|
||||
buf[i] =HexToInt(temp_String);
|
||||
i = i + 1;
|
||||
}
|
||||
a = 0 ; b = 0 ; c = 0 ; d = 0;
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
a = (buf[n] << (n * 8)) | a;
|
||||
b = (buf[n + 4] << (n * 8)) | b;
|
||||
c = (buf[n + 4 + 4] << (n * 8)) | c;
|
||||
d = (buf[n + 4 + 4 + 4] << (n * 8)) | d;
|
||||
}
|
||||
|
||||
|
||||
y = 0;
|
||||
z = 0;
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
temp_2 = conver(inb[n]);
|
||||
y = (temp_2 << (n * 8)) | y;
|
||||
temp_2 = conver(inb[n + 4]);
|
||||
z = (temp_2 << (n * 8)) | z;
|
||||
}
|
||||
|
||||
|
||||
n = 32;
|
||||
|
||||
while (n > 0)
|
||||
{
|
||||
sum = (cnDelta + sum)& mask;
|
||||
|
||||
temp = (z << 4) & mask;
|
||||
temp = (temp + a) & mask;
|
||||
temp_1 = (z + sum) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp_1 = (z >> 5) & mask;
|
||||
temp_1 = (temp_1 + b) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp = (temp + y) & mask;
|
||||
y = temp & mask;
|
||||
/*y += ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b); */
|
||||
|
||||
temp = (y << 4) & mask;
|
||||
temp = (temp + c) & mask;
|
||||
temp_1 = (y + sum) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp_1 = (y >> 5) & mask;
|
||||
temp_1 = (temp_1 + d) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp = (z + temp) & mask;
|
||||
z = temp & mask;
|
||||
/* z += ((y << 4) + c) ^ (y + sum) ^ ((y >> 5) + d); */
|
||||
n = n - 1;
|
||||
|
||||
}
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
outb[n] = (byte)((y >>> (n * 8)) & 255);
|
||||
outb[n + 4] =(byte)((z >>> (n * 8)) & 255);
|
||||
}
|
||||
}
|
||||
|
||||
public void DeCode(byte[] inb, byte[] outb, String Key )
|
||||
{
|
||||
|
||||
long cnDelta,y,z,a,b,c,d,temp_2;
|
||||
long [] buf=new long[16];
|
||||
int n,i,nlen;
|
||||
long sum;
|
||||
long temp,temp_1;
|
||||
|
||||
long mask=4294967295L;
|
||||
|
||||
//UInt32 temp, temp_1;
|
||||
String temp_String ;
|
||||
|
||||
|
||||
cnDelta = 2654435769L;
|
||||
sum = 3337565984L;
|
||||
|
||||
nlen = Key.length();
|
||||
i = 0;
|
||||
for( n = 1 ;n<= nlen ;n=n+2)
|
||||
{
|
||||
temp_String =Key.substring(n-1, n-1+2);
|
||||
buf[i] =HexToInt(temp_String);
|
||||
i = i + 1;
|
||||
}
|
||||
a = 0 ; b = 0 ; c = 0 ; d = 0;
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
a = (buf[n] << (n * 8)) | a;
|
||||
b = (buf[n + 4] << (n * 8)) | b;
|
||||
c = (buf[n + 4 + 4] << (n * 8)) | c;
|
||||
d = (buf[n + 4 + 4 + 4] << (n * 8)) | d;
|
||||
}
|
||||
|
||||
|
||||
y = 0;
|
||||
z = 0;
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
temp_2 = conver(inb[n]);
|
||||
y = (temp_2 << (n * 8)) | y;
|
||||
temp_2 = conver(inb[n + 4]);
|
||||
z = (temp_2 << (n * 8)) | z;
|
||||
}
|
||||
|
||||
|
||||
n = 32;
|
||||
|
||||
while (n > 0)
|
||||
{
|
||||
|
||||
|
||||
temp = (y << 4) & mask;
|
||||
temp = (temp + c) & mask;
|
||||
temp_1 = (y + sum) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp_1 = (y >> 5) & mask;
|
||||
temp_1 = (temp_1 + d) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp = (z - temp) & mask;
|
||||
z = temp & mask;
|
||||
/* z += ((y << 4) + c) ^ (y + sum) ^ ((y >> 5) + d); */
|
||||
|
||||
temp = (z << 4) & mask;
|
||||
temp = (temp + a) & mask;
|
||||
temp_1 = (z + sum) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp_1 = (z >> 5) & mask;
|
||||
temp_1 = (temp_1 + b) & mask;
|
||||
temp = (temp ^ temp_1) & mask;
|
||||
temp = (y - temp ) & mask;
|
||||
y = temp & mask;
|
||||
/*y += ((z << 4) + a) ^ (z + sum) ^ ((z >> 5) + b); */
|
||||
|
||||
sum = (sum-cnDelta)& mask;
|
||||
n = n - 1;
|
||||
|
||||
}
|
||||
for(n = 0;n<=3;n++)
|
||||
{
|
||||
outb[n] = (byte)((y >>> (n * 8)) & 255);
|
||||
outb[n + 4] =(byte)((z >>> (n * 8)) & 255);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main (String[] args)
|
||||
{
|
||||
System.out.println(IdUtil.simpleUUID());
|
||||
SoftKey mysoftkey = new SoftKey();
|
||||
String InString,Outstring,Outstring_2;
|
||||
InString="1122222222";
|
||||
Outstring=mysoftkey.StrEnc(InString,"5cb4b5fcfe474657b5621f34d0ea6df9");
|
||||
Outstring_2=mysoftkey.StrDec(Outstring,"5cb4b5fcfe474657b5621f34d0ea6df9");
|
||||
System.out.println(Outstring);
|
||||
System.out.println(Outstring_2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
package com.glxp.api.util.sm2;
|
||||
|
||||
import cn.hutool.core.util.HexUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.BCUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import cn.hutool.crypto.SmUtil;
|
||||
import cn.hutool.crypto.asymmetric.KeyType;
|
||||
import cn.hutool.crypto.asymmetric.SM2;
|
||||
import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey;
|
||||
import org.bouncycastle.jce.ECNamedCurveTable;
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec;
|
||||
import org.bouncycastle.jce.spec.ECNamedCurveSpec;
|
||||
import org.bouncycastle.util.encoders.Hex;
|
||||
|
||||
import java.security.*;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.interfaces.ECPublicKey;
|
||||
import java.security.spec.*;
|
||||
import java.util.Base64;
|
||||
|
||||
public class Test {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
String text = "wangjing";
|
||||
|
||||
//使用随机生成的密钥对加密或解密
|
||||
System.out.println("使用随机生成的密钥对加密或解密====开始");
|
||||
SM2 sm2 = SmUtil.sm2();
|
||||
// 公钥加密
|
||||
String encryptStr = sm2.encryptBcd(text, KeyType.PublicKey);
|
||||
System.out.println("公钥加密:" + encryptStr);
|
||||
//私钥解密
|
||||
String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
|
||||
System.out.println("私钥解密:" + decryptStr);
|
||||
System.out.println("使用随机生成的密钥对加密或解密====结束");
|
||||
|
||||
|
||||
//使用自定义密钥对加密或解密
|
||||
System.out.println("使用自定义密钥对加密或解密====开始");
|
||||
|
||||
|
||||
|
||||
|
||||
String hutoolPrivateKeyHex = HexUtil.encodeHexStr(BCUtil.encodeECPrivateKey(sm2.getPrivateKey()));
|
||||
String hutoolPublicKeyHex = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getEncoded(false));
|
||||
String hutoolPublicKeyHexX = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getXCoord().getEncoded());
|
||||
String hutoolPublicKeyHexY = HexUtil.encodeHexStr(((BCECPublicKey) sm2.getPublicKey()).getQ().getYCoord().getEncoded());
|
||||
|
||||
System.out.println(hutoolPrivateKeyHex);
|
||||
System.out.println(hutoolPublicKeyHex);
|
||||
System.out.println(hutoolPublicKeyHexX);
|
||||
System.out.println(hutoolPublicKeyHexY);
|
||||
|
||||
|
||||
ECPublicKey publicKey = hexToSM2PublicKey(hutoolPublicKeyHexX, hutoolPublicKeyHexY);
|
||||
String hutoolPublicKeyHex1 = HexUtil.encodeHexStr(publicKey.getEncoded());
|
||||
System.out.println(hutoolPublicKeyHex1);
|
||||
SM2 sm22 = SmUtil.sm2(hutoolPrivateKeyHex, hutoolPublicKeyHex1);
|
||||
// 公钥加密
|
||||
String encryptStr2 = sm22.encryptBcd(text, KeyType.PublicKey);
|
||||
System.out.println("公钥加密:" + encryptStr2);
|
||||
//私钥解密
|
||||
String decryptStr2 = StrUtil.utf8Str(sm22.decryptFromBcd(encryptStr2, KeyType.PrivateKey));
|
||||
System.out.println("私钥解密:" + decryptStr2);
|
||||
System.out.println("使用自定义密钥对加密或解密====结束");
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static ECPublicKey hexToSM2PublicKey(String x, String y) {
|
||||
ECPublicKey pubkey = null;
|
||||
try {
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("EC");
|
||||
ECPoint ecPoint = new ECPoint(
|
||||
new BigInteger(x, 16), new BigInteger(y, 16));
|
||||
|
||||
ECNamedCurveParameterSpec parameterSpec = ECNamedCurveTable.getParameterSpec("sm2p256v1");
|
||||
ECNamedCurveSpec spec = new ECNamedCurveSpec("sm2p256v1", parameterSpec.getCurve(), parameterSpec.getG(), parameterSpec.getN(), parameterSpec.getH(), parameterSpec.getSeed());
|
||||
|
||||
ECPublicKeySpec keySpec = new ECPublicKeySpec(ecPoint, spec);
|
||||
pubkey = new BCECPublicKey("BC", keySpec, BouncyCastleProvider.CONFIGURATION);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return pubkey;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.ud.UdInfoMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.glxp.api.dao.ud.UdProducePlanMapper">
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue