diff --git a/bonus-common-biz/src/main/java/com/bonus/common/houqin/utils/AesEncryptUtil.java b/bonus-common-biz/src/main/java/com/bonus/common/houqin/utils/AesEncryptUtil.java
index 8db39ca..5f66f20 100644
--- a/bonus-common-biz/src/main/java/com/bonus/common/houqin/utils/AesEncryptUtil.java
+++ b/bonus-common-biz/src/main/java/com/bonus/common/houqin/utils/AesEncryptUtil.java
@@ -11,6 +11,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
+import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
@@ -19,7 +20,7 @@ import java.nio.charset.StandardCharsets;
public class AesEncryptUtil {
private static final Logger log = LoggerFactory.getLogger(AesEncryptUtil.class);
private static final String KEY_ALGORITHM = "AES";
- private static final String AES_ENCRYPT_KEY = "pigxpigxpigxpigx";
+ private static final String AES_ENCRYPT_KEY ="loqvpd0iqazwsxed";// "pigxpigxpigxpigx";
// @Resource
@@ -30,12 +31,17 @@ public class AesEncryptUtil {
// }
public static String aesEncrypt(String encryptStr) {
- if (StrUtil.isBlank(encryptStr)) {
- return encryptStr;
- } else {
- AES aes = new AES(Mode.CBC, Padding.ZeroPadding, new SecretKeySpec(AES_ENCRYPT_KEY.getBytes(), "AES"), new IvParameterSpec(AES_ENCRYPT_KEY.getBytes()));
- return aes.encryptBase64(encryptStr);
+ try{
+ if (StrUtil.isBlank(encryptStr)) {
+ return encryptStr;
+ } else {
+ AES aes = new AES(Mode.ECB, Padding.PKCS5Padding, new SecretKeySpec(AES_ENCRYPT_KEY.getBytes(), "AES"));
+ return aes.encryptBase64(encryptStr);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
}
+ return encryptStr;
}
public static String aesDecode(String decodeStr) {
diff --git a/bonus-modules/bonus-modules.iml b/bonus-modules/bonus-modules.iml
deleted file mode 100644
index 84c5f11..0000000
--- a/bonus-modules/bonus-modules.iml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bonus-modules/bonus-zjgl/bonus-zjgl.iml b/bonus-modules/bonus-zjgl/bonus-zjgl.iml
index dbf29b1..72898ce 100644
--- a/bonus-modules/bonus-zjgl/bonus-zjgl.iml
+++ b/bonus-modules/bonus-zjgl/bonus-zjgl.iml
@@ -278,11 +278,6 @@
-
-
-
-
-
@@ -370,6 +365,11 @@
+
+
+
+
+
diff --git a/bonus-modules/bonus-zjgl/pom.xml b/bonus-modules/bonus-zjgl/pom.xml
index 4787140..dc46813 100644
--- a/bonus-modules/bonus-zjgl/pom.xml
+++ b/bonus-modules/bonus-zjgl/pom.xml
@@ -210,6 +210,12 @@
1.17.2
+
+ com.squareup.okhttp3
+ okhttp
+ 4.12.0
+
+
com.arcsoft.face
arcsoft-sdk-face
@@ -275,6 +281,10 @@
0.0.20131108.vaadin1
compile
+
+ com.squareup.okhttp3
+ okhttp
+
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateRefillController.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateRefillController.java
new file mode 100644
index 0000000..338a656
--- /dev/null
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateRefillController.java
@@ -0,0 +1,90 @@
+package com.bonus.canteen.core.certificate.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.bonus.canteen.core.certificate.mapper.CertificateReturnManageMapper;
+import com.bonus.canteen.core.certificate.service.CertificateManageService;
+import com.bonus.canteen.core.certificate.service.CertificateReturnManageService;
+import com.bonus.canteen.core.certificate.vo.CertificateInfo;
+import com.bonus.canteen.core.certificate.vo.CertificateRefill;
+import com.bonus.canteen.core.config.SmUtils;
+import com.bonus.common.core.web.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Api(tags = "证件信息回填接口")
+@RestController
+@RequestMapping("/certificate_refill")
+public class CertificateRefillController extends BaseController {
+ @Resource
+ private CertificateReturnManageService certificateReturnManageService;
+
+ @Resource
+ private CertificateReturnManageMapper certificateInfoMapper;
+
+ /**
+ * 证件信息回填接口
+ */
+ @ApiOperation(value = "证件信息回填接口")
+ @GetMapping("/refill")
+ public Map refill(@RequestBody CertificateRefill certificateRefill) {
+ Map map=new HashMap<>();
+ try{
+ String taskcode=certificateRefill.getTaskcode();
+ if("C0201".equals(taskcode)){
+ String params=certificateRefill.getParams();
+ String paramstr= SmUtils.decryptBySm42(params);
+ JSONObject jsonObject = JSONObject.parseObject(paramstr);
+ String taskno=jsonObject.getString("taskno");
+ String actiontype=jsonObject.getString("actiontype");
+ String operaTime=jsonObject.getString("operaTime");
+ String operator=jsonObject.getString("operator");
+ String opeidnumber=jsonObject.getString("opeidnumber");
+ String cardno=jsonObject.getString("cardno");
+ String deviceno=jsonObject.getString("deviceno");
+ String savepos=jsonObject.getString("savepos");
+ CertificateInfo certificateInfo=new CertificateInfo();
+ if(actiontype.contains("Save")){
+ certificateInfo.setCertificateNo(cardno);
+ certificateInfo.setTaskNo(taskno);
+ certificateInfo.setOpeidnumber(opeidnumber);
+ certificateInfo.setOperator(operator);
+ certificateInfo.setOperaTime(operaTime);
+ certificateInfo.setState("2");
+ certificateInfo.setProcessState("1");
+ certificateInfo.setRealProcessDate(operaTime);
+ certificateInfoMapper.updateCertificateSave(certificateInfo);
+ certificateInfoMapper.updateCertificateState(certificateInfo);
+ map.put("Message","执行成功");
+ map.put("Success","1");
+ }else{
+ certificateInfo.setCertificateNo(cardno);
+ certificateInfo.setTaskNo(taskno);
+ certificateInfo.setOpeidnumber(opeidnumber);
+ certificateInfo.setOperator(operator);
+ certificateInfo.setOperaTime(operaTime);
+ certificateInfo.setState("4");
+ certificateInfo.setProcessState("1");
+ certificateInfo.setRealProcessDate(operaTime);
+ certificateInfoMapper.updateCertificateSave(certificateInfo);
+ certificateInfoMapper.updateCertificateState(certificateInfo);
+ map.put("Message","执行成功");
+ map.put("Success","1");
+ }
+
+ }else{
+ map.put("Success","0");
+ map.put("Message","功能代码不正确,回馈接口代码C0201!");
+ }
+ }catch (Exception e){
+ map.put("Success","0");
+ map.put("Message",e.toString());
+ }
+ return map;
+ }
+
+}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java
index 3755815..d1e9197 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/controller/CertificateReturnManageController.java
@@ -10,13 +10,16 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType;
+import com.bonus.common.security.utils.SecurityUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
@Api(tags = "证件信息接口")
@RestController
@@ -35,6 +38,22 @@ public class CertificateReturnManageController extends BaseController {
List list = certificateInfoService.selectCertificateSaveList(deviceInfo);
return getDataTable(list);
}
+ /**
+ * 证件存入信息
+ */
+ @ApiOperation(value = "证件存入")
+ @SysLog(title = "证件存入", businessType = OperaType.INSERT, logType = 1,module = "借退管理->证件存入")
+ @PostMapping("/certificateSave/add")
+ public AjaxResult addCertificateSave(@RequestBody CertificateInfo certificateInfo) {
+ String username = SecurityUtils.getUsername();
+ Map map=new HashMap<>();
+ try {
+ return toAjax(certificateInfoService.addCertificateSave(certificateInfo));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return error(e.getMessage());
+ }
+ }
/**
* 查询证件信息列表
@@ -46,7 +65,21 @@ public class CertificateReturnManageController extends BaseController {
List list = certificateInfoService.selectCertificateAtakeList(deviceInfo);
return getDataTable(list);
}
-
+ /**
+ * 证件取出信息
+ */
+ @ApiOperation(value = "证件取出")
+ @SysLog(title = "证件取出", businessType = OperaType.INSERT, logType = 1,module = "借退管理->证件取出")
+ @PostMapping("/certificateTake/add")
+ public AjaxResult certificateTake(@RequestBody CertificateInfo certificateInfo) {
+ String username = SecurityUtils.getUsername();
+ Map map=new HashMap<>();
+ try {
+ return toAjax(certificateInfoService.addCertificateTake(certificateInfo));
+ } catch (Exception e) {
+ return error(e.getMessage());
+ }
+ }
/**
* 查询证件信息列表
*/
@@ -57,5 +90,21 @@ public class CertificateReturnManageController extends BaseController {
List list = certificateInfoService.selectCertificateTaskList(deviceInfo);
return getDataTable(list);
}
+ /**
+ * 证件取出信息
+ */
+ @ApiOperation(value = "证件任务撤回")
+ @SysLog(title = "证件任务撤回", businessType = OperaType.INSERT, logType = 1,module = "借退管理->证件任务撤回")
+ @PostMapping("/certificateTask/return")
+ public AjaxResult certificateReturn(@RequestBody CertificateInfo certificateInfo) {
+ String username = SecurityUtils.getUsername();
+ Map map=new HashMap<>();
+ try {
+ return toAjax(certificateInfoService.addCertificateReturn(certificateInfo));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return error(e.getMessage());
+ }
+ }
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java
index 0c82047..da8fde7 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/mapper/CertificateReturnManageMapper.java
@@ -13,13 +13,6 @@ import java.util.List;
* @date 2025-05-25
*/
public interface CertificateReturnManageMapper {
- /**
- * 查询证件信息
- *
- * @param deviceId 证件信息主键
- * @return 证件信息
- */
- public CertificateInfo selectCertificateInfoByDeviceId(Long deviceId);
/**
* 查询证件信息列表
@@ -33,123 +26,11 @@ public interface CertificateReturnManageMapper {
public List selectCertificateAtakeList(CertificateInfo certificateInfo);
- /**
- * 新增证件信息
- *
- * @param certificateInfo 证件信息
- * @return 结果
- */
- public int insertCertificateInfo(CertificateInfo certificateInfo);
+ public int addCertificateSave(CertificateInfo certificateInfo);
+ public int updateCertificateState(CertificateInfo certificateInfo);
- /**
- * 修改证件信息
- *
- * @param certificateInfo 证件信息
- * @return 结果
- */
- public int updateCertificateInfo(CertificateInfo certificateInfo);
+ public CertificateInfo selectCertificateInfoByCertificateNo(@Param("certificateNo") String certificateNo);
+ public CertificateInfo selectCertificateTaskByCertificateNo(@Param("taskNo") String taskNo);
+ public int updateCertificateSave(CertificateInfo certificateInfo);
- /**
- * 删除证件信息
- *
- * @param deviceId 证件信息主键
- * @return 结果
- */
- public int deleteCertificateInfoByDeviceId(Long deviceId);
-
- /**
- * 批量删除证件信息
- *
- * @param deviceIds 需要删除的数据主键集合
- * @return 结果
- */
- public int deleteCertificateInfoByDeviceIds(@Param("deviceIds") Long[] deviceIds);
-
- /**
- * 校验设备名称是否唯一
- *
- * @param certificateInfo 设备名称
- * @return 结果
- */
- int checkDeviceNameUnique(CertificateInfo certificateInfo);
-
- /**
- * 校验设备编号是否唯一
- *
- * @param certificateInfo 设备编号
- * @return 结果
- */
- int checkDeviceNumberUnique(CertificateInfo certificateInfo);
-
- /**
- * 校验设备序列号是否唯一
- *
- * @param certificateInfo 设备序列号
- * @return 结果
- */
- int checkDeviceSnUnique(CertificateInfo certificateInfo);
-
- /**
- * 新增设备绑定关系
- *
- * @param certificateInfo 设备绑定关系
- * @return 结果
- */
- int insertDeviceBinding(CertificateInfo certificateInfo);
-
- /**
- * 修改设备绑定关系
- *
- * @param certificateInfo 设备绑定关系
- * @return 结果
- */
- int updateDeviceBinding(CertificateInfo certificateInfo);
-
- /**
- * 新增设备菜谱关系
- *
- * @param certificateInfo 设备菜谱关系
- * @return 结果
- */
- int insertDeviceRecipeBinding(CertificateInfo certificateInfo);
-
- /**
- * 修改设备菜谱关系
- *
- * @param certificateInfo 设备菜谱关系
- * @return 结果
- */
- int updateDeviceRecipeBinding(CertificateInfo certificateInfo);
-
- /**
- * 查询设备菜谱关系
- *
- * @param certificateInfo 设备菜谱关系
- * @return 结果
- */
- String selectDeviceRecipeBinding(CertificateInfo certificateInfo);
-
- /**
- * 批量删除设备绑定关系
- *
- * @param deviceIds 需要删除的数据主键集合
- */
- void deleteDeviceBinding(@Param("deviceIds") Long[] deviceIds);
-
- /**
- * 批量删除设备菜谱关系
- *
- * @param deviceIds 需要删除的数据主键集合
- */
- void deleteDeviceRecipeBinding(@Param("deviceIds") Long[] deviceIds);
-
- /**
- * 更新设备在线状态
- *
- * @param sn 设备序列号
- * @return 结果
- */
- int updateTimeBySn(String sn);
-
- int updateTimeByKitchenSn(String sn);
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java
index f80fb58..72131bb 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/CertificateReturnManageService.java
@@ -13,61 +13,23 @@ import java.util.List;
*/
public interface CertificateReturnManageService {
/**
- * 查询证件信息
- *
- * @param deviceId 证件信息主键
- * @return 证件信息
- */
- public CertificateInfo selectCertificateInfoByDeviceId(Long deviceId);
-
- /**
- * 查询证件信息列表
+ * 查询证件任务信息列表
*
* @param certificateInfo 证件信息
* @return 证件信息集合
*/
public List selectCertificateTaskList(CertificateInfo certificateInfo);
-
+ public int addCertificateReturn(CertificateInfo certificateInfo);
+ /**
+ * 存证信息列表
+ *
+ * @param certificateInfo 证件信息
+ * @return 证件信息集合
+ */
public List selectCertificateSaveList(CertificateInfo certificateInfo);
+ public int addCertificateSave(CertificateInfo certificateInfo);
public List selectCertificateAtakeList(CertificateInfo certificateInfo);
- /**
- * 新增证件信息
- *
- * @param deviceInfo 证件信息
- * @return 结果
- */
- public int insertCertificateInfo(CertificateInfo deviceInfo);
+ public int addCertificateTake(CertificateInfo certificateInfo);
- /**
- * 修改证件信息
- *
- * @param deviceInfo 证件信息
- * @return 结果
- */
- public int updateCertificateInfo(CertificateInfo deviceInfo);
-
- /**
- * 批量删除证件信息
- *
- * @param deviceIds 需要删除的证件信息主键集合
- * @return 结果
- */
- public int deleteCertificateInfoByDeviceIds(Long[] deviceIds);
-
- /**
- * 删除证件信息信息
- *
- * @param deviceId 证件信息主键
- * @return 结果
- */
- public int deleteCertificateInfoByDeviceId(Long deviceId);
-
- /**
- * 根据设备sn码更新设备最后使用时间
- * @param deviceSn 设备sn码
- */
- void updateTimeBySn(String deviceSn);
-
- void updateTimeByKitchenSn(String deviceSn);
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java
index 7f02e1e..f881be2 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/service/impl/CertificateReturnManageServiceImpl.java
@@ -1,17 +1,25 @@
package com.bonus.canteen.core.certificate.service.impl;
+import com.alibaba.fastjson.JSONObject;
import com.bonus.canteen.core.certificate.mapper.CertificateReturnManageMapper;
import com.bonus.canteen.core.certificate.service.CertificateReturnManageService;
import com.bonus.canteen.core.certificate.vo.CertificateInfo;
import com.bonus.canteen.core.certificate.vo.CertificateTask;
+import com.bonus.canteen.core.config.SmUtils;
+import com.bonus.canteen.core.utils.BnsUtils;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
+import com.bonus.common.houqin.utils.AesEncryptUtil;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
+import java.util.Random;
/**
* 设备资料Service业务层处理
@@ -19,24 +27,14 @@ import java.util.List;
* @author xsheng
* @date 2025-05-25
*/
+
@Service
public class CertificateReturnManageServiceImpl implements CertificateReturnManageService {
@Resource
private CertificateReturnManageMapper certificateInfoMapper;
private static final Long DEVICE_TYPE_STALL = 20L;
-
- /**
- * 查询设备资料
- *
- * @param deviceId 设备资料主键
- * @return 设备资料
- */
- @Override
- public CertificateInfo selectCertificateInfoByDeviceId(Long deviceId) {
- return certificateInfoMapper.selectCertificateInfoByDeviceId(deviceId);
- }
-
+ private static final String certificateUrl="http://124.220.39.153:8090/externaltask/accessfunction";
/**
* 查询设备资料列表
*
@@ -47,53 +45,182 @@ public class CertificateReturnManageServiceImpl implements CertificateReturnMana
public List selectCertificateTaskList(CertificateInfo certificateInfo) {
return certificateInfoMapper.selectCertificateTaskList(certificateInfo);
}
+
+ //任务回撤接口
+ @Override
+ public int addCertificateReturn(CertificateInfo certificateInfo) {
+ int res=0;
+ String[] nos=certificateInfo.getCertificateNos();
+ if(nos!=null&&nos.length>0){
+ for(int i=0;i selectCertificateSaveList(CertificateInfo certificateInfo) {
return certificateInfoMapper.selectCertificateSaveList(certificateInfo);
}
+
+ //存证接口
+ @Override
+ public int addCertificateSave(CertificateInfo certificateInfo) {
+ int res=0;
+ String[] nos=certificateInfo.getCertificateNos();
+ SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ if(nos!=null&&nos.length>0){
+ for(int i=0;i selectCertificateAtakeList(CertificateInfo certificateInfo) {
return certificateInfoMapper.selectCertificateAtakeList(certificateInfo);
}
-
- /**
- * 新增设备资料
- *
- * @param certificateInfo 设备资料
- * @return 结果
- */
+ //取证接口
@Override
- @Transactional(rollbackFor = Exception.class)
- public int insertCertificateInfo(CertificateInfo certificateInfo) {
- certificateInfo.setCreateTime(DateUtils.getNowDate());
- certificateInfo.setUpdateTime(DateUtils.getNowDate());
- try {
- checkParam(certificateInfo,false);
- return certificateInfoMapper.insertCertificateInfo(certificateInfo);
- } catch (Exception e) {
- e.printStackTrace();
- throw new ServiceException(e.getMessage());
+ public int addCertificateTake(CertificateInfo certificateInfo) {
+ int res=0;
+ String[] nos=certificateInfo.getCertificateNos();
+ SimpleDateFormat sdf =new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ if(nos!=null&&nos.length>0){
+ for(int i=0;i 0) {
- throw new ServiceException("设备名称已存在");
- }
- if (certificateInfoMapper.checkDeviceNumberUnique(certificateInfo) > 0) {
- throw new ServiceException("设备编号已存在");
- }
- if (certificateInfoMapper.checkDeviceSnUnique(certificateInfo) > 0) {
- throw new ServiceException("设备SN已存在");
- }
- }
-
- /**
- * 批量删除设备资料
- *
- * @param deviceIds 需要删除的设备资料主键
- * @return 结果
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int deleteCertificateInfoByDeviceIds(Long[] deviceIds) {
- certificateInfoMapper.deleteDeviceBinding(deviceIds);
- certificateInfoMapper.deleteDeviceRecipeBinding(deviceIds);
- return certificateInfoMapper.deleteCertificateInfoByDeviceIds(deviceIds);
- }
-
- /**
- * 删除设备资料信息
- *
- * @param deviceId 设备资料主键
- * @return 结果
- */
- @Override
- public int deleteCertificateInfoByDeviceId(Long deviceId) {
- return certificateInfoMapper.deleteCertificateInfoByDeviceId(deviceId);
- }
-
- /**
- * 根据sn更新时间
- *
- * @param sn 设备sn码
- */
- @Override
- public void updateTimeBySn(String sn) {
- int code = certificateInfoMapper.updateTimeBySn(sn);
- if (code == 0) {
- throw new ServiceException("更新时间失败");
- }
- }
- @Override
- public void updateTimeByKitchenSn(String sn) {
- int code = certificateInfoMapper.updateTimeByKitchenSn(sn);
- if (code == 0) {
- throw new ServiceException("更新时间失败");
- }
- }
-
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java
index 9466717..d4ddbf3 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateInfo.java
@@ -150,6 +150,17 @@ public class CertificateInfo extends BaseEntity {
private String taskTypeName;
private String email;
+ // 1 自主存证 2管理员存证 3自助取证 4 管理员取证 5应急取证 6代人取证
+ private String type;
+ private String typeName;
private String[] certificateNos;
+
+ private String keyWord;
+
+ private String operator;
+ private String operaTime;
+ private String opeidnumber;
+
+
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRefill.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRefill.java
new file mode 100644
index 0000000..37586fc
--- /dev/null
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateRefill.java
@@ -0,0 +1,24 @@
+package com.bonus.canteen.core.certificate.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.bonus.common.core.annotation.Excel;
+import com.bonus.common.core.web.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 设备资料对象 device_info
+ *
+ * @author xsheng
+ * @date 2025-05-25
+ */
+
+
+@Data
+@ToString
+public class CertificateRefill {
+ private String taskcode;
+ private String params;
+}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java
index 50f5224..9019416 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/certificate/vo/CertificateTask.java
@@ -108,6 +108,8 @@ public class CertificateTask extends BaseEntity {
private String taskTypeName;
private String email;
+ private String type;
+ private String typeName;
}
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SmUtils.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SmUtils.java
index 59a9016..dcb267d 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SmUtils.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/config/SmUtils.java
@@ -4,10 +4,12 @@ import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.util.PrimitiveArrayUtil;
import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.symmetric.AES;
import cn.hutool.crypto.symmetric.SM4;
import com.bonus.canteen.core.common.utils.SpringContextHolder;
import com.google.common.base.Joiner;
@@ -17,6 +19,7 @@ import org.slf4j.LoggerFactory;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
@@ -24,6 +27,37 @@ import java.util.SortedMap;
public class SmUtils {
private static final Logger log = LoggerFactory.getLogger(SmUtils.class);
+ private static final String SM_ENCRYPT_KEY ="loqvpd0iqazwsxed";
+
+ public static String smEncrypt(String encryptStr) {
+ try{
+ if (StrUtil.isBlank(encryptStr)) {
+ return encryptStr;
+ } else {
+ SM4 sm4=new SM4(Mode.ECB, Padding.PKCS5Padding,SM_ENCRYPT_KEY.getBytes());
+ return sm4.encryptBase64(encryptStr);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return encryptStr;
+ }
+
+ public static String decryptBySm42(String data) {
+ try{
+ byte[] key=SM_ENCRYPT_KEY.getBytes();
+ byte[] decodedData = Base64Decoder.decode(data);
+ if (decodedData.length <= 16) {
+ throw new IllegalArgumentException("Encrypted data byte length must greater than 16");
+ } else {
+ return (new SM4(Mode.ECB, Padding.PKCS5Padding, key)).decryptStr(decodedData);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ return data;
+ }
+ }
+
private static SecureProperties secureProperties = SpringContextHolder.getBean(SecureProperties.class);
public static void setSecureProperties(SecureProperties secureProperties) {
if (SmUtils.secureProperties == null) {
@@ -31,6 +65,7 @@ public class SmUtils {
}
}
+
public static String signBySm3(SortedMap data, String clientKey) {
data.put(secureProperties.getSecurity().getClientKeySignParamName(), clientKey);
String joinedParam = Joiner.on("&").useForNull("").withKeyValueSeparator("=").join(data);
diff --git a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java
index 4ffc3cc..7807fb7 100644
--- a/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java
+++ b/bonus-modules/bonus-zjgl/src/main/java/com/bonus/canteen/core/utils/BnsUtils.java
@@ -1,11 +1,14 @@
package com.bonus.canteen.core.utils;
import com.bonus.common.core.exception.ServiceException;
+import okhttp3.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import java.beans.PropertyDescriptor;
+import java.io.IOException;
+import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
@@ -41,4 +44,102 @@ public class BnsUtils {
String[] result = new String[emptyNames.size()];
return (String[])emptyNames.toArray(result);
}
+ public static String sendMsgByUrl(String url,String jsonstr){
+ String responseString="";
+ try{
+ OkHttpClient client = new OkHttpClient();
+ MediaType mediaType = MediaType.parse("application/json");
+ RequestBody requestBody = RequestBody.create(mediaType, jsonstr);
+ Request request = new Request.Builder()
+ .url(url)
+ .post(requestBody)
+ .build();
+ Response response = client.newCall(request).execute();
+ responseString = response.body().string();
+ System.out.println("Response: " + responseString);
+ response.close();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return responseString;
+ }
+
+ /**
+ * 根据身份证号获取年龄
+ */
+ public static int countAge(String sfzjh){
+ sfzjh = sfzjh.trim();
+ if(sfzjh == null || "".equals(sfzjh) || sfzjh.contains("*")){
+ return 0;
+ }
+
+ if (sfzjh.length() != 15 && sfzjh.length() != 18){
+ return 0;
+ }
+ int age = 0;
+ Calendar cal = Calendar.getInstance();
+ int yearNow = cal.get(Calendar.YEAR);
+ int monthNow = cal.get(Calendar.MONTH)+1;
+ int dayNow = cal.get(Calendar.DATE);
+
+ int year = Integer.valueOf(sfzjh.substring(6, 10));
+ int month = Integer.valueOf(sfzjh.substring(10,12));
+ int day = Integer.valueOf(sfzjh.substring(12,14));
+
+ if ((month < monthNow) || (month == monthNow && day<= dayNow) ){
+ age = yearNow - year;
+ }else {
+ age = yearNow - year-1;
+ }
+ return age;
+ }
+
+ /**
+ * 根据身份证号判断性别 奇数代表男 偶数代表女
+ * @param idNumber
+ * @return
+ */
+ public static String gender(String idNumber) {
+ int gender = 0;
+ if(idNumber.length() == 18){
+ //如果身份证号18位,取身份证号倒数第二位
+ char c = idNumber.charAt(idNumber.length() - 2);
+ gender = Integer.parseInt(String.valueOf(c));
+ }else{
+ //如果身份证号15位,取身份证号最后一位
+ char c = idNumber.charAt(idNumber.length() - 1);
+ gender = Integer.parseInt(String.valueOf(c));
+ }
+ if(gender % 2 == 1){
+ return "男";
+// return "1";
+ }else{
+ return "女";
+// return "2";
+ }
+ }
+
+ /**
+ * 根据身份证号判断性别 奇数代表男 偶数代表女
+ * @param idNumber
+ * @return
+ */
+ public static int getIntTypeGender(String idNumber) {
+ int gender = 0;
+ if(idNumber.length() == 18){
+ //如果身份证号18位,取身份证号倒数第二位
+ char c = idNumber.charAt(idNumber.length() - 2);
+ gender = Integer.parseInt(String.valueOf(c));
+ }else{
+ //如果身份证号15位,取身份证号最后一位
+ char c = idNumber.charAt(idNumber.length() - 1);
+ gender = Integer.parseInt(String.valueOf(c));
+ }
+ if(gender % 2 == 1){
+ return 1;
+ }else{
+ return 2;
+ }
+ }
+
}
diff --git a/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateManageMapper.xml b/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateManageMapper.xml
index 2a364b1..463c3c9 100644
--- a/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateManageMapper.xml
+++ b/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateManageMapper.xml
@@ -30,6 +30,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and bc.certificate_no like concat('%', #{certificateNo}, '%')
+
+ and (bc.certificate_no like concat('%', #{keyWord}, '%') or bc.name like concat('%', #{name}, '%')
+ or bc.id_number like concat('%', #{idNumber}, '%')
+ )
+
order by bc.update_time desc
diff --git a/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml b/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml
index dc65fa5..b7bb6a0 100644
--- a/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml
+++ b/bonus-modules/bonus-zjgl/src/main/resources/mapper/certificate/CertificateReturnManageMapper.xml
@@ -14,20 +14,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
when bc.state='1' then '存入中'
when bc.state='2' then '已存入'
when bc.state='3' then '取出中'
- when bc.state='3' then '已取出 '
+ when bc.state='4' then '已取出 '
end as statename,
bct.process_state as processstate,
bct.real_process_date as realprocessdate,
bct.verification_code as verificationcode,
- case when bct.process_state='0' then '未执行' else '已执行' end processstatename,
+ case when bct.process_state='0' then '未执行' when bct.process_state='1' then '已执行' else '已撤销' end processstatename,
bct.task_type as tasktype,bct.task_no as taskno,
case when bct.task_type='1' then '存证' else '取证' end tasktypename,
- bct.process_date as processdate,bct.create_time as createTime
- from basic_certificate bc
+ bct.process_date as processdate,bct.create_time as createTime,bct.type,
+ case when bct.type='1' then '自主存证'
+ when bct.type='2' then '管理员存证'
+ when bct.type='3' then '自助取证'
+ when bct.type='4' then '管理员取证'
+ when bct.type='5' then '应急取证'
+ when bct.type='6' then '代人取证' end as typename
+ from basic_certificate_task bct
+ left join basic_certificate bc on bc.certificate_no=bct.certificate_no
left join sys_dept sd on bc.dept_id=sd.dept_id
left join (select * from sys_dict_data where dict_type='sys_certificate_type') sdd on bc.certificate_type=sdd.dict_value
- left join basic_certificate_task bct on bc.certificate_no=bct.certificate_no
- where bct.task_type in ('1','2') and bc.del_flag='0'
+ where bct.task_type in ('1','2') and bc.del_flag='0' and bct.del_flag='0'
and bc.id_number like concat('%', #{idNumber}, '%')
@@ -37,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and bc.certificate_no like concat('%', #{certificateNo}, '%')
- order by bc.create_time desc
+ order by bct.create_time desc
-
-