diff --git a/src/main/java/com/glxp/api/controller/ud/UdInfoController.java b/src/main/java/com/glxp/api/controller/ud/UdInfoController.java new file mode 100644 index 0000000..3dd6ba5 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/ud/UdInfoController.java @@ -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 pages = PageHelper.offsetPage(offset, request.getLimit()); + List list = udInfoService.list(getQueryWrapper(request)); + PageSimpleResponse 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 getQueryWrapper(UdInfoEntityRequest request) { + UdInfoEntity entity = new UdInfoEntity(); + BeanCopyUtils.copy(request, entity); + QueryWrapper queryWrapper = new QueryWrapper(entity); + return queryWrapper; + } + +} diff --git a/src/main/java/com/glxp/api/controller/ud/UdProducePlanController.java b/src/main/java/com/glxp/api/controller/ud/UdProducePlanController.java new file mode 100644 index 0000000..b39edf7 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/ud/UdProducePlanController.java @@ -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 userMap = authAdminService.getEmployeeNameMap(); + + int offset = (request.getPage() - 1) * request.getLimit(); + Page pages = PageHelper.offsetPage(offset, request.getLimit()); + List 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 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 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; + } + +} diff --git a/src/main/java/com/glxp/api/dao/ud/UdInfoMapper.java b/src/main/java/com/glxp/api/dao/ud/UdInfoMapper.java new file mode 100644 index 0000000..5be96f9 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/ud/UdInfoMapper.java @@ -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 { +} diff --git a/src/main/java/com/glxp/api/dao/ud/UdProducePlanMapper.java b/src/main/java/com/glxp/api/dao/ud/UdProducePlanMapper.java new file mode 100644 index 0000000..3385cac --- /dev/null +++ b/src/main/java/com/glxp/api/dao/ud/UdProducePlanMapper.java @@ -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 { +} diff --git a/src/main/java/com/glxp/api/entity/ud/UdInfoEntity.java b/src/main/java/com/glxp/api/entity/ud/UdInfoEntity.java new file mode 100644 index 0000000..6f230dc --- /dev/null +++ b/src/main/java/com/glxp/api/entity/ud/UdInfoEntity.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/entity/ud/UdProducePlanEntity.java b/src/main/java/com/glxp/api/entity/ud/UdProducePlanEntity.java new file mode 100644 index 0000000..e9582ff --- /dev/null +++ b/src/main/java/com/glxp/api/entity/ud/UdProducePlanEntity.java @@ -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; +} diff --git a/src/main/java/com/glxp/api/req/ud/UdInfoEntityRequest.java b/src/main/java/com/glxp/api/req/ud/UdInfoEntityRequest.java new file mode 100644 index 0000000..5f816b4 --- /dev/null +++ b/src/main/java/com/glxp/api/req/ud/UdInfoEntityRequest.java @@ -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; + +} diff --git a/src/main/java/com/glxp/api/req/ud/UdProducePlanEntityRequest.java b/src/main/java/com/glxp/api/req/ud/UdProducePlanEntityRequest.java new file mode 100644 index 0000000..beec837 --- /dev/null +++ b/src/main/java/com/glxp/api/req/ud/UdProducePlanEntityRequest.java @@ -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; + +} diff --git a/src/main/java/com/glxp/api/service/auth/AuthAdminService.java b/src/main/java/com/glxp/api/service/auth/AuthAdminService.java index 5b623ad..25229f5 100644 --- a/src/main/java/com/glxp/api/service/auth/AuthAdminService.java +++ b/src/main/java/com/glxp/api/service/auth/AuthAdminService.java @@ -8,6 +8,7 @@ import com.glxp.api.req.auth.FilterNoSelectUserRequest; import com.glxp.api.req.auth.UpdateUserRequset; import java.util.List; +import java.util.Map; public interface AuthAdminService extends IService { @@ -45,4 +46,6 @@ public interface AuthAdminService extends IService { void insertUserAuth(Long userId, List roleIds); + + Map getEmployeeNameMap(); } diff --git a/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java index 4c5b704..0b1da82 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/AuthAdminServiceImpl.java @@ -19,10 +19,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service @Transactional(rollbackFor = Exception.class) @@ -177,6 +175,14 @@ public class AuthAdminServiceImpl extends ServiceImpl i insertUserRole(userId, roleIds); } + @Override + public Map getEmployeeNameMap() { + + List list = authAdminDao.listAdminPage(new FilterAuthUserRequest()); + + return list.stream().collect(Collectors.toMap(AuthAdmin::getId, AuthAdmin::getEmployeeName)); + } + public void insertUserRole(Long userId, List roleIds) { if (ArrayUtil.isNotEmpty(roleIds)) { diff --git a/src/main/java/com/glxp/api/service/ud/UdInfoService.java b/src/main/java/com/glxp/api/service/ud/UdInfoService.java new file mode 100644 index 0000000..89a739b --- /dev/null +++ b/src/main/java/com/glxp/api/service/ud/UdInfoService.java @@ -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 { + +} diff --git a/src/main/java/com/glxp/api/service/ud/UdProducePlanService.java b/src/main/java/com/glxp/api/service/ud/UdProducePlanService.java new file mode 100644 index 0000000..ee58adc --- /dev/null +++ b/src/main/java/com/glxp/api/service/ud/UdProducePlanService.java @@ -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 { + +} diff --git a/src/main/java/com/glxp/api/util/GennerOrderUtils.java b/src/main/java/com/glxp/api/util/GennerOrderUtils.java index 6cbdd57..5ce7b09 100644 --- a/src/main/java/com/glxp/api/util/GennerOrderUtils.java +++ b/src/main/java/com/glxp/api/util/GennerOrderUtils.java @@ -130,6 +130,16 @@ public class GennerOrderUtils { return orderNo; } + /** + * 获取UDcode + * + * @return + */ + public String getUDNo() { + String orderNo = createRecordOrderNo(new OrderNoTypeBean("UD", "yyyyMMdd")); + return orderNo; + } + /** * @param orderNoTypeEnum: * @Description 基于redis生成单号(时间格式 + 自增数) diff --git a/src/main/java/com/glxp/api/util/SoftKey.java b/src/main/java/com/glxp/api/util/SoftKey.java new file mode 100644 index 0000000..7eca206 --- /dev/null +++ b/src/main/java/com/glxp/api/util/SoftKey.java @@ -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 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); + + + } + +} diff --git a/src/main/java/com/glxp/api/util/sm2/Test.java b/src/main/java/com/glxp/api/util/sm2/Test.java new file mode 100644 index 0000000..366e0ae --- /dev/null +++ b/src/main/java/com/glxp/api/util/sm2/Test.java @@ -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; + } + +} diff --git a/src/main/resources/mybatis/mapper/ud/UdInfoMapper.xml b/src/main/resources/mybatis/mapper/ud/UdInfoMapper.xml new file mode 100644 index 0000000..360240c --- /dev/null +++ b/src/main/resources/mybatis/mapper/ud/UdInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mybatis/mapper/ud/UdProducePlanMapper.xml b/src/main/resources/mybatis/mapper/ud/UdProducePlanMapper.xml new file mode 100644 index 0000000..8687e36 --- /dev/null +++ b/src/main/resources/mybatis/mapper/ud/UdProducePlanMapper.xml @@ -0,0 +1,5 @@ + + + + +