Commit 4b26d05a by huangtao

销毁审批

parent 8ee8787e
package com.jmai.api.consts;
import java.util.regex.Pattern;
public interface Decodes {
/**************************************************************************
* 解码
**************************************************************************/
int LENGTH_EAN13 = 13;
int LENGTH_EAN14 = 14;
int LENGTH_EAN7 = 7;
Pattern REGEX_EAN13 = Pattern.compile("^[0-9]{13}$");
Pattern REGEX_EAN14 = Pattern.compile("^[0-8][0-9]{13}$");
Pattern REGEX_GS1 = Pattern.compile("^[0-9A-Za-z\\(\\)!@#\\$%\\^&*\\-+]{2,}$");
Pattern REGEX_MA = Pattern.compile("^ΜΑ\\.\\w{3}\\.MX\\.\\w{6}\\.[0-9]\\w{6}C\\..*\\.C\\w{1}$");
String REGEX_DATE = "(\\d{2}(?:0\\d|1[0-2])(?:[0-2]\\d|3[01]))";
}
package com.jmai.api.consts;
// 移到ConfigFetcher中去
@Deprecated
public interface VerifyConfigs {
/**
* 解码设置
*/
String SYS_DECODE_SETTING = "sys.decode.setting";
interface SysDecodeSetting {
/**************************
* 解码相关配置
**************************/
String DECODE_SETTING = "decodeSetting";
}
}
package com.jmai.api.consts;
import com.google.common.collect.ImmutableList;
import java.util.List;
public interface VerifyKeys {
String INFYOS_SPI_PREFIX = "infyos.spi.";
/*******************************************************************
* 数据存储器
******************************************************************/
String FETCHER_PREFIX = INFYOS_SPI_PREFIX + "data.fetcher.";
String CONFIG_FETCHER = "configFetcher";
String DECODE_RULE_FETCHER = "decodeRuleFetcher";
String PRODUCT_FETCHER = "productFetcher";
String PRODUCT_SERIAL_FETCHER = "productSerialFetcher";
String VERIFY_ORDER_FETCHER = "verifyOrderFetcher";
String BIZ_ORDER_FETCHER = "bizOrderFetcher";
/*******************************************************************
* 数据存储器
******************************************************************/
String STORER_PREFIX = INFYOS_SPI_PREFIX + "data.storer.";
String VERIFY_ORDER_STORER = "verifyOrderStorer";
String VERIFY_RESULT_STORER = "verifyResultStorer";
/*******************************************************************
* 数据加载器
******************************************************************/
String LOADER_PREFIX = INFYOS_SPI_PREFIX + "verify.loader.";
String VERIFY_ENGINE_CONTEXT_LOADER = "verifyEngineContextLoader";
String CERT_DECODE_VERIFY_CONTEXT_LOADER = "certDecodeVerifyContextLoader";
String CERT_PRODUCTION_VERIFY_CONTEXT_LOADER = "certProductionVerifyContextLoader";
String CERT_PRODUCT_VERIFY_CONTEXT_LOADER = "certProductVerifyContextLoader";
String CERT_LASER_VERIFY_CONTEXT_LOADER = "certLaserVerifyContextLoader";
String CERT_VERIFY_ORDER_VERIFY_CONTEXT_LOADER = "certVerifyOrderVerifyContextLoader";
/*******************************************************************
* 匹配器
******************************************************************/
String MATCHER_PREFIX = INFYOS_SPI_PREFIX + "verify.matcher.";
String LASER_MATCHER = "laserMatcher";
/*******************************************************************
* 核验器
******************************************************************/
String CERT_DECODE_VERIFIER = "certDecodeVerifier";
String CERT_PRODUCTION_VERIFIER = "certProductionVerifier";
String CERT_PRODUCT_VERIFIER = "certProductVerifier";
String CERT_LASER_VERIFIER = "certLaserVerifier";
String CERT_VERIFY_ORDER_VERIFIER = "certVerifyOrderVerifier";
/*******************************************************************
* 选择器
******************************************************************/
String SELECTOR_PREFIX = INFYOS_SPI_PREFIX + "verify.selector.";
/*******************************************************************
* 其他
******************************************************************/
String DECODE_ONLY = "_DECODE_ONLY_";
/*******************************************************************
* 根据场景选择开启核验器
******************************************************************/
List<String> ALL_VERIFIERS = ImmutableList.of(
CERT_DECODE_VERIFIER,
CERT_PRODUCTION_VERIFIER,
CERT_PRODUCT_VERIFIER,
CERT_LASER_VERIFIER,
CERT_VERIFY_ORDER_VERIFIER
);
/**
* 解码开启核验器
*/
List<String> DECODE_VERIFIERS = ImmutableList.of(
CERT_DECODE_VERIFIER,
CERT_PRODUCTION_VERIFIER,
CERT_PRODUCT_VERIFIER
// 无需物证匹配
// 无需核验单据信息
);
/**
* 镭射码/合格证匹配开启核验器
*/
List<String> MATCH_VERIFIERS = ImmutableList.of(
CERT_DECODE_VERIFIER,
CERT_PRODUCTION_VERIFIER,
CERT_PRODUCT_VERIFIER,
CERT_LASER_VERIFIER,
CERT_VERIFY_ORDER_VERIFIER
);
/**
* 仅匹配不核验
*/
List<String> MATCH_ONLY_VERIFIERS = ImmutableList.of(CERT_LASER_VERIFIER);
/**
* 无需解码
*/
List<String> VERIFY_WITHOUT_DECODING_VERIFIERS = ImmutableList.of(
// 无需解码,
CERT_PRODUCTION_VERIFIER,
CERT_PRODUCT_VERIFIER,
CERT_LASER_VERIFIER,
CERT_VERIFY_ORDER_VERIFIER
);
/**
* 匹配核验开启核验器
*/
List<String> VERIFY_VERIFIERS = ALL_VERIFIERS;
}
...@@ -31,7 +31,7 @@ public enum StatusEnum { ...@@ -31,7 +31,7 @@ public enum StatusEnum {
.findAny(); .findAny();
} }
public static com.jmai.api.consts.enums.StatusEnum getOrThrow(Integer code) { public static StatusEnum getOrThrow(Integer code) {
return valueOf(code) return valueOf(code)
.orElseThrow(() -> new ServiceException("枚举类型不正确,StatusEnum:code=" + code)); .orElseThrow(() -> new ServiceException("枚举类型不正确,StatusEnum:code=" + code));
} }
...@@ -43,17 +43,17 @@ public enum StatusEnum { ...@@ -43,17 +43,17 @@ public enum StatusEnum {
public static String getNameOf(Integer code) { public static String getNameOf(Integer code) {
return valueOf(code) return valueOf(code)
.map(com.jmai.api.consts.enums.StatusEnum::getName) .map(StatusEnum::getName)
.orElse(""); .orElse("");
} }
public static boolean isInactive(Integer code) { public static boolean isInactive(Integer code) {
com.jmai.api.consts.enums.StatusEnum status = getOrThrow(code); StatusEnum status = getOrThrow(code);
return status == INACTIVE; return status == INACTIVE;
} }
public static boolean isActive(Integer code) { public static boolean isActive(Integer code) {
com.jmai.api.consts.enums.StatusEnum status = getOrThrow(code); StatusEnum status = getOrThrow(code);
return status == ACTIVE; return status == ACTIVE;
} }
} }
...@@ -16,6 +16,7 @@ import com.jmai.sys.aop.Auth; ...@@ -16,6 +16,7 @@ import com.jmai.sys.aop.Auth;
import com.jmai.sys.ctx.SpringContextUtils; import com.jmai.sys.ctx.SpringContextUtils;
import com.jmai.sys.dto.ResponseData; import com.jmai.sys.dto.ResponseData;
import com.jmai.sys.entity.SysUser; import com.jmai.sys.entity.SysUser;
import com.jmai.sys.manager.SysManager;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -40,6 +41,8 @@ public class PhysicDestroyCheckController { ...@@ -40,6 +41,8 @@ public class PhysicDestroyCheckController {
@Resource @Resource
private PhysicDestroyCheckService physicDestroyCheckService; private PhysicDestroyCheckService physicDestroyCheckService;
@PostMapping("/create") @PostMapping("/create")
@ApiOperation(value = "创建") @ApiOperation(value = "创建")
public ResponseData create(@RequestBody @Valid PhysicDestroyCheckCreateReq req) { public ResponseData create(@RequestBody @Valid PhysicDestroyCheckCreateReq req) {
......
...@@ -13,6 +13,6 @@ public class PhysicDestroyCheckCreateReq { ...@@ -13,6 +13,6 @@ public class PhysicDestroyCheckCreateReq {
private String applyDeptId; private String applyDeptId;
private String applyTitle; private String applyTitle;
private String applyReason; private String applyReason;
private String images; private List<Long> images;
private List<PhysicDestroyCheckDetail> checkDetailList; private List<PhysicDestroyCheckDetail> checkDetailList;
} }
...@@ -11,13 +11,14 @@ import lombok.Data; ...@@ -11,13 +11,14 @@ import lombok.Data;
@ApiModel(description = "药品销毁审核表") @ApiModel(description = "药品销毁审核表")
@TableName("physic_destroy_check") @TableName("physic_destroy_check")
public class PhysicDestroyCheck extends BaseVersionEntity { public class PhysicDestroyCheck extends BaseVersionEntity {
private String orderNo;
private String applyName; private String applyName;
private Long applyDeptId; private Long applyDeptId;
private String applyTitle; private String applyTitle;
private String applyReason; private String applyReason;
private String images;
private Integer destroyNum; private Integer destroyNum;
@ApiModelProperty(value = "状态 0-审批中 1-已销毁 ") @ApiModelProperty(value = "状态 0-5审批中 6-已销毁 ")
private Integer status; private Integer status;
private String xhUser; private String xhUser;
private String jdUser; private String jdUser;
......
package com.jmai.physic.service.impl; package com.jmai.physic.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -15,11 +16,15 @@ import com.jmai.physic.service.PhysicDestroyCheckDetailService; ...@@ -15,11 +16,15 @@ import com.jmai.physic.service.PhysicDestroyCheckDetailService;
import com.jmai.physic.service.PhysicDestroyCheckService; import com.jmai.physic.service.PhysicDestroyCheckService;
import com.jmai.physic.vo.PhysicDestroyCheckVO; import com.jmai.physic.vo.PhysicDestroyCheckVO;
import com.jmai.physic.vo.PhysicDestroyNumVO; import com.jmai.physic.vo.PhysicDestroyNumVO;
import com.jmai.sys.consts.BizFileTypes;
import com.jmai.sys.consts.enums.RoleTypeEum; import com.jmai.sys.consts.enums.RoleTypeEum;
import com.jmai.sys.ctx.SpringContextUtils; import com.jmai.sys.ctx.SpringContextUtils;
import com.jmai.sys.entity.SysUser; import com.jmai.sys.entity.SysUser;
import com.jmai.sys.manager.SysManager;
import com.jmai.sys.mapper.SysUserMapper; import com.jmai.sys.mapper.SysUserMapper;
import com.jmai.sys.service.BizFileService;
import com.jmai.sys.service.impl.BaseServiceImpl; import com.jmai.sys.service.impl.BaseServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -52,17 +57,29 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy ...@@ -52,17 +57,29 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
@Resource @Resource
private PhysicStorageAmpouleMapper physicStorageAmpouleMapper; private PhysicStorageAmpouleMapper physicStorageAmpouleMapper;
@Resource
private BizFileService bizFileService;
@Resource
private SysManager sysManager;
@Transactional @Transactional
@Override @Override
public void create(PhysicDestroyCheckCreateReq req) { public void create(PhysicDestroyCheckCreateReq req) {
PhysicDestroyCheck check = new PhysicDestroyCheck(); PhysicDestroyCheck check = new PhysicDestroyCheck();
BeanUtil.copyProperties(req,check); BeanUtil.copyProperties(req,check);
check.setOrderNo(sysManager.newCheck("123"));
this.save(check); this.save(check);
for (PhysicDestroyCheckDetail physicDestroyCheckDetail : req.getCheckDetailList()) { for (PhysicDestroyCheckDetail physicDestroyCheckDetail : req.getCheckDetailList()) {
physicDestroyCheckDetail.setCheckId(check.getId()); physicDestroyCheckDetail.setCheckId(check.getId());
} }
physicDestroyCheckDetailService.saveBatch(req.getCheckDetailList()); physicDestroyCheckDetailService.saveBatch(req.getCheckDetailList());
if(ObjectUtil.isNotEmpty(req.getImages())){
if (CollectionUtils.isNotEmpty(req.getImages())) {
bizFileService.addBizFilesIfAbsent(BizFileTypes.PHYSIC_RECORD_IMAGE,check.getId().toString(), req.getImages());
}
}
} }
@Override @Override
...@@ -144,11 +161,12 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy ...@@ -144,11 +161,12 @@ public class PhysicDestroyCheckServiceImpl extends BaseServiceImpl<PhysicDestroy
ampoule.setPhysicName(physicDestroyCheckDetail.getPhysicName()); ampoule.setPhysicName(physicDestroyCheckDetail.getPhysicName());
ampoule.setBatchNo(ampoule.getBatchNo()); ampoule.setBatchNo(ampoule.getBatchNo());
ampoule.setAcceptDeptId(sysUser.getDeptId()); ampoule.setAcceptDeptId(sysUser.getDeptId());
ampoule.setPhysicNum(physicDestroyCheckDetail.getPhysicNum()); ampoule.setPhysicNum(0);
ampoule.setPhysicSpec(physicDestroyCheckDetail.getPhysicSpec()); ampoule.setPhysicSpec(physicDestroyCheckDetail.getPhysicSpec());
ampoule.setExpendNum(physicDestroyCheckDetail.getPhysicNum()); ampoule.setExpendNum(physicDestroyCheckDetail.getPhysicNum());
ampoule.setType(2); ampoule.setType(2);
ampoule.setDestroyStatus(1); ampoule.setDestroyStatus(1);
ampoule.setOrderNo(physicDestroyCheck.getOrderNo());
Integer batchNoSum = physicStorageAmpouleMapper.selectCurrentSumByBatchNo(physicDestroyCheckDetail.getPhysicName(), physicDestroyCheckDetail.getPhysicSpec(), physicDestroyCheckDetail.getFactoryName(), physicDestroyCheckDetail.getBatchNo(), sysUser.getDeptId()); Integer batchNoSum = physicStorageAmpouleMapper.selectCurrentSumByBatchNo(physicDestroyCheckDetail.getPhysicName(), physicDestroyCheckDetail.getPhysicSpec(), physicDestroyCheckDetail.getFactoryName(), physicDestroyCheckDetail.getBatchNo(), sysUser.getDeptId());
Integer physicSum = physicStorageAmpouleMapper.selectCurrentSumByName(physicDestroyCheckDetail.getPhysicName(), physicDestroyCheckDetail.getPhysicSpec(), physicDestroyCheckDetail.getFactoryName(), sysUser.getDeptId()); Integer physicSum = physicStorageAmpouleMapper.selectCurrentSumByName(physicDestroyCheckDetail.getPhysicName(), physicDestroyCheckDetail.getPhysicSpec(), physicDestroyCheckDetail.getFactoryName(), sysUser.getDeptId());
ampoule.setBatchBalance(batchNoSum - physicDestroyCheckDetail.getPhysicNum()); ampoule.setBatchBalance(batchNoSum - physicDestroyCheckDetail.getPhysicNum());
......
...@@ -74,11 +74,10 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements ...@@ -74,11 +74,10 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
ampoule.setPhysicNum(physic.getPhysicNum()); ampoule.setPhysicNum(physic.getPhysicNum());
ampoule.setPhysicSpec(physic.getPhysicSpec()); ampoule.setPhysicSpec(physic.getPhysicSpec());
ampoule.setPhysicType(physic.getPhysicType()); ampoule.setPhysicType(physic.getPhysicType());
ampoule.setAcquireNum(physic.getPhysicNum());
Integer batchNoSum = physicStorageAmpouleMapper.selectCurrentSumByBatchNo(physic.getPhysicName(), physic.getPhysicSpec(), physic.getFactoryName(), physic.getBatchNo(), sysUser.getDeptId()); Integer batchNoSum = physicStorageAmpouleMapper.selectCurrentSumByBatchNo(physic.getPhysicName(), physic.getPhysicSpec(), physic.getFactoryName(), physic.getBatchNo(), sysUser.getDeptId());
Integer physicSum = physicStorageAmpouleMapper.selectCurrentSumByName(physic.getPhysicName(), physic.getPhysicSpec(), physic.getFactoryName(), sysUser.getDeptId()); Integer physicSum = physicStorageAmpouleMapper.selectCurrentSumByName(physic.getPhysicName(), physic.getPhysicSpec(), physic.getFactoryName(), sysUser.getDeptId());
ampoule.setBatchBalance(batchNoSum-physic.getPhysicNum()); ampoule.setBatchBalance(batchNoSum);
ampoule.setPhysicNum(physicSum-physic.getPhysicNum()); ampoule.setPhysicNum(physicSum);
physicStorageAmpouleMapper.insert(ampoule); physicStorageAmpouleMapper.insert(ampoule);
} }
} }
...@@ -90,6 +89,12 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements ...@@ -90,6 +89,12 @@ public class PhysicStorageAmpouleServiceImpl extends AbstractService implements
Page<PhysicStorageAmpouleVO> page = buildEmptyPage(req); Page<PhysicStorageAmpouleVO> page = buildEmptyPage(req);
Page<PhysicStorageAmpouleVO> ampoulePage= physicStorageAmpouleMapper.selectAmpoulePage(page, req); Page<PhysicStorageAmpouleVO> ampoulePage= physicStorageAmpouleMapper.selectAmpoulePage(page, req);
for (PhysicStorageAmpouleVO record : ampoulePage.getRecords()) {
//如果为移至销毁类型,销毁数量physicNum=expendNum发出数量
if(record.getType().equals(2) && record.getDestroyStatus().equals(1)){
record.setPhysicNum(record.getExpendNum());
}
}
return ampoulePage; return ampoulePage;
} }
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<select id="selectDestroy" resultType="com.jmai.physic.vo.PhysicDestroyNumVO"> <select id="selectDestroy" resultType="com.jmai.physic.vo.PhysicDestroyNumVO">
select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(physic_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule
where ((type =2 and destroy_status =0 and accept_dept_id =#{deptId}) or (type =2 and destroy_status =1 and accept_dept_id =#{deptId})) where ((type =2 and destroy_status =0 and accept_dept_id =#{deptId}) or (type =2 and destroy_status =1 and accept_dept_id =#{deptId}))
group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id
</select> </select>
......
...@@ -14,5 +14,8 @@ public interface BizFileTypes { ...@@ -14,5 +14,8 @@ public interface BizFileTypes {
@ApiModelProperty("药品专用登记图片") @ApiModelProperty("药品专用登记图片")
String PHYSIC_RECORD_IMAGE = "physic.record.image"; String PHYSIC_RECORD_IMAGE = "physic.record.image";
@ApiModelProperty("空安瓿销毁审批图片")
String AMPOULE_DESTROY_IMAGE = "physic.destroy.image";
} }
package com.jmai.sys.consts; package com.jmai.sys.consts;
import com.jmai.api.consts.VerifyConfigs;
/** /**
* 配置类型及业务主键 * 配置类型及业务主键
* *
* - 类型命名规则(三层级):大模块.小模块.配置类型 * - 类型命名规则(三层级):大模块.小模块.配置类型
*/ */
public interface ConfigTypes { public interface ConfigTypes extends VerifyConfigs {
String KEY_BIZ_TYPE = "bizType"; String KEY_BIZ_TYPE = "bizType";
String KEY_BIZ_KEY = "bizKey"; String KEY_BIZ_KEY = "bizKey";
String KEY_ORDER_TYPE = "orderType"; String KEY_ORDER_TYPE = "orderType";
...@@ -24,6 +26,16 @@ public interface ConfigTypes { ...@@ -24,6 +26,16 @@ public interface ConfigTypes {
// 用户权限 // 用户权限
String USER_PERMS = "userPerms"; String USER_PERMS = "userPerms";
} }
/**
* 解码相关设置
*/
String SYS_DECODE_SETTING = "sys.decode.setting";
interface SysDecodeSetting {
// 解码规则校验
String DECODE_RULE_CHECK = "decodeRuleCheck";
}
/** /**
* 任务相关设置 * 任务相关设置
*/ */
...@@ -52,6 +64,112 @@ public interface ConfigTypes { ...@@ -52,6 +64,112 @@ public interface ConfigTypes {
*/ */
String SYS_EXPORT_TEMPLATE = "sys.export.template"; String SYS_EXPORT_TEMPLATE = "sys.export.template";
/*******************************************************************
* IVS
******************************************************************/
String IVS_COMMON_CONFIG = "ivs.common";
interface IvsCommonConfig {
// 业务配置
String BIZ_SETTING = "bizSetting";
}
/**
* 单据配置
*/
String IVS_ORDER_CONFIG = "ivs.order.config";
interface IvsOrderConfig {
// 通用配置
String ORDER_SETTING = "orderSetting";
// 核验单(初核)配置
String VERIFY_CONFIG = "verifyConfig";
// 复核单(复核)配置
String RECHECK_CONFIG = "recheckConfig";
String VERIFY_ONLY="_VERIFY_ONLY_";
}
/**
* 单据类型定义
*/
String IVS_ORDER_DEFINE = "ivs.order.define";
interface IvsOrderDefine {
// 订单类型
String ORDER_TYPE = "orderType";
}
/**
* 编码生成器
*/
String IVS_CODE_GENERATOR = "ivs.code.generator";
interface IvsCodeGenerator {
// 钉盒模板编号号
String NAILBOX_TEMPLATE_NO = "nailboxTemplateNo";
// 业务单号
String ORDER_NO = "orderNo";
// 核验单号
String VERIFY_ORDER_NO = "verifyOrderNo";
// 复核单号
String RECHECK_ORDER_NO = "recheckOrderNo";
// 核验任务编号
String VERIFY_TASK_NO = "verifyTaskNo";
// 序列号
String SERIAL_NO = "serialNo";
// 计费码
String ITEM_CODE = "itemCode";
// RFID码
String RFID_CODE = "rfidCode";
String CHECK_CODE ="checkCode";
}
/**
* 物料设置
*/
String IVS_ITEM_SETTING = "ivs.item.setting";
interface IvsCodeSetting {
// 物料设置
String ITEM_SETTING = "itemSetting";
}
/**
* 核验单识别配置
*/
@Deprecated
String IVS_OCR_LASER = "ivs.ocr.laser";
interface IvsOcrConfig {
//MOCK服务识别地址
String INFYOCR_MOCK_CONFIG = "infyocrMockConfig";
//本地识别地址
String INFYOCR_LOCAL_CONFIG = "infyocrLocalConfig";
//云服务识别地址
String INFYOCR_CLOUD_CONFIG = "infyocrCloudConfig";
//启用OCR渠道
String CHANNEL_TYPE = "channelType";
}
String OCR_LOCAL_CHANNEL = "local";
String OCR_CLOUD_CHANNEL = "cloud";
String OCR_MOCK_CHANNEL = "mock";
String IVS_OCR_RECOGNIZER = "ivs.ocr.recognizer";
interface OcrCertReader {
// 镭射码识别器
String LASER_CODE_RECOGNIZER = "laserCodeRecognizer";
// 合格证内容识别器
String CERT_TEXT_RECOGNIZER = "certTextRecognizer";
// 合格证UDI识别器
String CERT_UDI_RECOGNIZER = "certUdiRecognizer";
// 备份识别器
String BACKUP_RECOGNIZER = ".bak";
// 已开启识别器
String KEY_ENABLED_RECOGNIZER = "enabledRecognizer";
// 识别器配置(JSON)
String KEY_RECOGNIZER_CONFIG = "recognizerConfig";
}
/** /**
* 快照设置 * 快照设置
......
package com.jmai.sys.manager; package com.jmai.sys.manager;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.jmai.api.exception.ServiceException; import com.jmai.api.exception.ServiceException;
import com.jmai.sys.AbstractService; import com.jmai.sys.AbstractService;
import com.jmai.sys.consts.enums.SysFileTypeEnum; import com.jmai.sys.consts.enums.SysFileTypeEnum;
import com.jmai.sys.dto.PrintReqVo; import com.jmai.sys.dto.*;
import com.jmai.sys.dto.UploadResultVo;
import com.jmai.sys.exception.ErrorCode; import com.jmai.sys.exception.ErrorCode;
import com.jmai.sys.service.ConfigService; import com.jmai.sys.service.ConfigService;
import com.jmai.sys.service.SerialNumberService; import com.jmai.sys.service.SerialNumberService;
...@@ -23,9 +23,17 @@ import javax.annotation.Resource; ...@@ -23,9 +23,17 @@ import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static cn.hutool.core.date.DatePattern.NORM_DATE_PATTERN; import static cn.hutool.core.date.DatePattern.NORM_DATE_PATTERN;
import static com.jmai.sys.consts.ConfigTypes.IVS_CODE_GENERATOR;
import static com.jmai.sys.consts.ConfigTypes.IvsCodeGenerator.*;
@Slf4j @Slf4j
@Component @Component
...@@ -41,11 +49,171 @@ public class SysManager extends AbstractService { ...@@ -41,11 +49,171 @@ public class SysManager extends AbstractService {
* 编码生成 * 编码生成
* TODO:分布式部署如何保证编码唯一性? * TODO:分布式部署如何保证编码唯一性?
******************************************************************/ ******************************************************************/
public String newNailboxTemplateNo(String uno) {
return generate(NAILBOX_TEMPLATE_NO, uno);
}
public String newOrderNo(String uno) {
return generate(ORDER_NO, uno);
}
public String newVerifyOrderNo(String uno) {
return generate(VERIFY_ORDER_NO, uno);
}
public String newRecheckOrderNo(String uno) {
return generate(RECHECK_ORDER_NO, uno);
}
public String newCheck(String uno) {
return generate(CHECK_CODE, uno);
}
public String newVerifyTaskNo(String uno) {
return generate(VERIFY_TASK_NO, uno);
}
public String newSerialNo(String uno) {
return generate(SERIAL_NO, uno);
}
public List<String> newSerialNoBatch(String uno, int count) {
return generateBatch(SERIAL_NO, uno, count);
}
/**
* 基于target生成计费码和RFID码(物料信息——产品信息+生产信息)
*/
public String newItemCode(String uno) {
return generate(ITEM_CODE, uno);
}
public String newRfidCode(String uno) {
return generate(RFID_CODE, uno);
}
public String newItemCode(String uno, Object target) {
return generate(ITEM_CODE, uno, target);
}
public String newRfidCode(String uno, Object target) {
return generate(RFID_CODE, uno, target);
}
private String generate(String generatorType, String uno) {
return generate(generatorType, uno, null);
}
private String generate(String generatorType, String uno, Object target) {
assert ObjectUtil.isNotEmpty(uno) : "uno 不能为空";
Map<String, ConfigDto> configMap = configService.getActiveConfigMapByType(IVS_CODE_GENERATOR);
if (!configMap.containsKey(generatorType)) {
throw new ServiceException("未配置编号生成器:类型=" + IVS_CODE_GENERATOR + ",编码生成器=" + generatorType);
}
CodeGeneratorConfig config = configMap.get(generatorType)
.getValueAsObject(CodeGeneratorConfig.class);
// 表达式
String expression = config.getExpression();
if (ObjectUtil.isEmpty(expression)) {
return "";
}
// 参数(内置变量命名同常量命名方式——大写驼峰)
Map<String, Object> ctx = ObjectUtil.isNotEmpty(target) ? BeanUtil.beanToMap(target) : new HashMap<>();
if (ObjectUtil.isNotEmpty(config.getParams())) {
ctx.putAll(config.getParams());
}
if (ObjectUtil.isNotEmpty(uno)) {
ctx.put("UNO", uno);
}
ctx.put("SEQUENCE", nextId());
ctx.put("SHORT_SEQUENCE", nextShotId());
ctx.put("CURRENT_DATE", DateUtil.format(LocalDateTime.now(), config.getDateFormat()));
if (expression.contains(config.getSerialNumberKey())) {
// 生成流水号
Long serialNumber = generateSerialNumber(config.getBizType(), config.getBizKey(), config.getMinSerialNumber(), config.getCreatingModel());
ctx.put(config.getSerialNumberKey(), serialNumber);
}
// 计算
return calculateSpel(ctx, expression).toString();
}
private List<String> generateBatch(String generatorType, String uno, int count) {
assert ObjectUtil.isNotEmpty(uno) : "uno 不能为空";
if (count <= 0) {
return Collections.emptyList();
}
Map<String, ConfigDto> configMap = configService.getActiveConfigMapByType(IVS_CODE_GENERATOR);
if (!configMap.containsKey(generatorType)) {
throw new ServiceException("未配置编号生成器:类型=" + IVS_CODE_GENERATOR + ",编码生成器=" + generatorType);
}
CodeGeneratorConfig config = configMap.get(generatorType)
.getValueAsObject(CodeGeneratorConfig.class);
// 表达式
String expression = config.getExpression();
if (ObjectUtil.isEmpty(expression)) {
return Collections.emptyList();
}
// 参数(内置变量命名同常量命名方式——大写驼峰)
Map<String, Object> ctx = new HashMap<>();
if (ObjectUtil.isNotEmpty(config.getParams())) {
ctx.putAll(config.getParams());
}
if (ObjectUtil.isNotEmpty(uno)) {
ctx.put("UNO", uno);
}
ctx.put("SEQUENCE", nextId());
ctx.put("SHORT_SEQUENCE", nextShotId());
ctx.put("CURRENT_DATE", DateUtil.format(LocalDateTime.now(), config.getDateFormat()));
// 批量生成流水号
SerialNumberResp serialNumberBatch;
if (expression.contains(config.getSerialNumberKey())) {
serialNumberBatch = generateSerialNumberBatch(config.getBizType(), config.getBizKey(), config.getMinSerialNumber(), config.getCreatingModel(), count);
if (log.isDebugEnabled()) {
log.debug("generate:count={},serialNumberBatch={}", count, toJSONString(serialNumberBatch));
}
} else {
serialNumberBatch = null;
}
return IntStream.rangeClosed(1, count)
.mapToObj(index -> {
// 生成流水号
ctx.put("_INDEX_", index);
if (expression.contains(config.getSerialNumberKey())) {
// 流水号
Long serialNumber = serialNumberBatch.getStartNumber();
serialNumberBatch.setStartNumber(serialNumber + 1);
ctx.put(config.getSerialNumberKey(), serialNumber);
}
// 计算
return calculateSpel(ctx, expression).toString();
})
.collect(Collectors.toList());
}
public boolean isCodeMatched(String code, String generatorType) {
if (ObjectUtil.isEmpty(code) || ObjectUtil.isEmpty(generatorType)) {
return false;
}
ConfigDto configDto = configService.getActiveConfigOrThrow(IVS_CODE_GENERATOR, generatorType);
CodeGeneratorConfig config = configDto.getValueAsObject(CodeGeneratorConfig.class);
return isCodeMatched(code, config);
}
public boolean isCodeMatched(String code, CodeGeneratorConfig config) { public boolean isCodeMatched(String code, CodeGeneratorConfig config) {
if (ObjectUtil.isEmpty(code) || ObjectUtil.isEmpty(config)) { if (ObjectUtil.isEmpty(code) || ObjectUtil.isEmpty(config)) {
...@@ -91,8 +259,44 @@ public class SysManager extends AbstractService { ...@@ -91,8 +259,44 @@ public class SysManager extends AbstractService {
String format; String format;
} }
private Long generateSerialNumber(String bizType, String bizKey, Long minSerialNumber, Integer creatingModel) {
SerialNumberReq req = new SerialNumberReq();
req.setBizType(bizType);
req.setBizKey(bizKey);
req.setNumberCount(1);
req.setMinNumber(minSerialNumber);
req.setCreatingModel(creatingModel);
req.setRetryTimes(3);
SerialNumberResp sn = serialNumberService.nextNumber(req);
return sn.getStartNumber();
}
private Long generateSerialNumber(String bizType, String bizKey) {
return generateSerialNumber(bizType, bizKey, 0L, 0);
}
private SerialNumberResp generateSerialNumberBatch(String bizType, String bizKey, Long minSerialNumber, Integer creatingModel, Integer numberCount) {
SerialNumberReq req = new SerialNumberReq();
req.setBizType(bizType);
req.setBizKey(bizKey);
req.setNumberCount(numberCount);
req.setMinNumber(minSerialNumber);
req.setCreatingModel(creatingModel);
req.setRetryTimes(3);
return serialNumberService.nextNumber(req);
}
private Long generateOrInitSerialNumber(String bizType, String bizKey) {
SerialNumberReq req = new SerialNumberReq();
req.setBizType(bizType);
req.setBizKey(bizKey);
req.setNumberCount(1);
req.setMinNumber(0L);
req.setCreatingModel(1);
req.setRetryTimes(3);
SerialNumberResp sn = serialNumberService.nextNumber(req);
return sn.getStartNumber();
}
/******************************************************************* /*******************************************************************
* 文件管理 * 文件管理
......
...@@ -12,7 +12,6 @@ import com.jmai.sys.entity.SysConfig; ...@@ -12,7 +12,6 @@ import com.jmai.sys.entity.SysConfig;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import static com.jmai.api.base.BaseService.selectOne; import static com.jmai.api.base.BaseService.selectOne;
import static com.jmai.api.base.BaseService.toJSONString; import static com.jmai.api.base.BaseService.toJSONString;
......
...@@ -1172,3 +1172,467 @@ com.jmai.physic.controller.PhysicDestroyCheckController#listPage(PhysicCheckQuer ...@@ -1172,3 +1172,467 @@ com.jmai.physic.controller.PhysicDestroyCheckController#listPage(PhysicCheckQuer
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
... 49 common frames omitted ... 49 common frames omitted
[jmai:38098::] 2025-12-05 11:18:04.925[ERROR] 8828 [f07cee0dc0564417a97da7ca9a8c74b7] [http-nio-38098-exec-5:166614] [com.jmai.sys.exception.ServiceExceptionHandler.handleException:91] ServiceException:500 -- 未配置编号生成器:类型=ivs.code.generator,编码生成器=checkCode -- {}
com.jmai.api.exception.ServiceException: 500,未配置编号生成器:类型=ivs.code.generator,编码生成器=checkCode
at com.jmai.sys.manager.SysManager.generate(SysManager.java:113)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:105)
at com.jmai.sys.manager.SysManager.newCheck(SysManager.java:69)
at com.jmai.physic.controller.PhysicDestroyCheckController.create(PhysicDestroyCheckController.java:51)
at com.jmai.physic.controller.PhysicDestroyCheckController$$FastClassBySpringCGLIB$$4fe91edc.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.physic.controller.PhysicDestroyCheckController$$EnhancerBySpringCGLIB$$ab4ae844.create(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at com.jmai.sys.config.web.filter.TraceFilter.doFilter(TraceFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:750)
[jmai:38098::] 2025-12-05 11:22:27.729[ERROR] 9396 [b4460685af21403694b11ae391ab7eaa] [http-nio-38098-exec-1:22034] [com.jmai.sys.exception.ServiceExceptionHandler.handleException:91] ServiceException:500 -- 未配置编号生成器:类型=ivs.code.generator,编码生成器=checkCode -- {}
com.jmai.api.exception.ServiceException: 500,未配置编号生成器:类型=ivs.code.generator,编码生成器=checkCode
at com.jmai.sys.manager.SysManager.generate(SysManager.java:113)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:105)
at com.jmai.sys.manager.SysManager.newCheck(SysManager.java:69)
at com.jmai.physic.controller.PhysicDestroyCheckController.create(PhysicDestroyCheckController.java:51)
at com.jmai.physic.controller.PhysicDestroyCheckController$$FastClassBySpringCGLIB$$4fe91edc.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.physic.controller.PhysicDestroyCheckController$$EnhancerBySpringCGLIB$$f930e50b.create(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at com.jmai.sys.config.web.filter.TraceFilter.doFilter(TraceFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:750)
[jmai:38098::] 2025-12-05 11:23:50.311[ERROR] 9396 [b53dd5b0c4cb4b1a914f569c3ae6585a] [http-nio-38098-exec-2:104616] [com.jmai.sys.exception.ServiceExceptionHandler.handleException:129]
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
### The error may exist in com/jmai/sys/mapper/SysSerialNumberMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
### The error may exist in com/jmai/sys/mapper/SysSerialNumberMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy121.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy133.selectOne(Unknown Source)
at com.jmai.sys.service.impl.SerialNumberServiceImpl.doNextNumber(SerialNumberServiceImpl.java:50)
at com.jmai.sys.service.impl.SerialNumberServiceImpl.nextNumber(SerialNumberServiceImpl.java:38)
at com.jmai.sys.service.impl.SerialNumberServiceImpl$$FastClassBySpringCGLIB$$f443693a.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.sys.service.impl.SerialNumberServiceImpl$$EnhancerBySpringCGLIB$$600d4115.nextNumber(<generated>)
at com.jmai.sys.manager.SysManager.generateSerialNumber(SysManager.java:270)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:137)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:105)
at com.jmai.sys.manager.SysManager.newCheck(SysManager.java:69)
at com.jmai.physic.controller.PhysicDestroyCheckController.create(PhysicDestroyCheckController.java:51)
at com.jmai.physic.controller.PhysicDestroyCheckController$$FastClassBySpringCGLIB$$4fe91edc.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.physic.controller.PhysicDestroyCheckController$$EnhancerBySpringCGLIB$$f930e50b.create(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at com.jmai.sys.config.web.filter.TraceFilter.doFilter(TraceFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy200.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy198.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:64)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy197.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 95 common frames omitted
[jmai:38098::] 2025-12-05 11:24:28.716[ERROR] 22060 [c205ed6a34644e42a39335e51c8fa0e8] [http-nio-38098-exec-1:35426] [com.jmai.sys.exception.ServiceExceptionHandler.handleException:129]
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
### The error may exist in com/jmai/sys/mapper/SysSerialNumberMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
### The error may exist in com/jmai/sys/mapper/SysSerialNumberMapper.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)
### Cause: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:236)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy121.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:90)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy133.selectOne(Unknown Source)
at com.jmai.sys.service.impl.SerialNumberServiceImpl.doNextNumber(SerialNumberServiceImpl.java:50)
at com.jmai.sys.service.impl.SerialNumberServiceImpl.nextNumber(SerialNumberServiceImpl.java:38)
at com.jmai.sys.service.impl.SerialNumberServiceImpl$$FastClassBySpringCGLIB$$f443693a.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.sys.service.impl.SerialNumberServiceImpl$$EnhancerBySpringCGLIB$$8873d513.nextNumber(<generated>)
at com.jmai.sys.manager.SysManager.generateSerialNumber(SysManager.java:270)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:137)
at com.jmai.sys.manager.SysManager.generate(SysManager.java:105)
at com.jmai.sys.manager.SysManager.newCheck(SysManager.java:69)
at com.jmai.physic.controller.PhysicDestroyCheckController.create(PhysicDestroyCheckController.java:51)
at com.jmai.physic.controller.PhysicDestroyCheckController$$FastClassBySpringCGLIB$$4fe91edc.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:58)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.jmai.physic.controller.PhysicDestroyCheckController$$EnhancerBySpringCGLIB$$a0e68a04.create(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:665)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at com.jmai.sys.config.web.filter.TraceFilter.doFilter(TraceFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.sql.SQLSyntaxErrorException: Table 'jmai.sys_serial_number' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)
at com.sun.proxy.$Proxy200.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy198.query(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:64)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy197.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 95 common frames omitted
...@@ -1036,3 +1036,39 @@ ...@@ -1036,3 +1036,39 @@
1764783623556|33|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = '59c268e7-16f9-4f9f-a970-0cbc6efc31b4') 1764783623556|33|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = '59c268e7-16f9-4f9f-a970-0cbc6efc31b4')
1764783623591|32|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996122871550787585 AND del_flag=0 1764783623591|32|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996122871550787585 AND del_flag=0
1764783623628|33|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996122871550787585 AND del_flag=0 1764783623628|33|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996122871550787585 AND del_flag=0
1764904684787|42|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'f37363de-7f88-4160-8988-67bbae6734af')
1764904684846|37|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996167627253301249 AND del_flag=0
1764904684919|37|statement|connection 0|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = ? AND status = ?)|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = 'ivs.code.generator' AND status = 1)
1764904947584|46|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'f37363de-7f88-4160-8988-67bbae6734af')
1764904947646|39|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996167627253301249 AND del_flag=0
1764904947721|38|statement|connection 0|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = ? AND status = ?)|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = 'ivs.code.generator' AND status = 1)
1764904969910|38|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'f37363de-7f88-4160-8988-67bbae6734af')
1764904969951|38|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996167627253301249 AND del_flag=0
1764905030093|38|statement|connection 0|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = ? AND status = ?)|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = 'ivs.code.generator' AND status = 1)
1764905030206|49|statement|connection 0|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = 'jmai.checkNo' AND biz_key = '2025-12-05')
1764905030273|37|rollback|connection 0||
1764905047080|47|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'f37363de-7f88-4160-8988-67bbae6734af')
1764905047144|40|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996167627253301249 AND del_flag=0
1764905050300|39|statement|connection 0|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = ? AND status = ?)|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = 'ivs.code.generator' AND status = 1)
1764905065318|82|statement|connection 0|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = 'jmai.checkNo' AND biz_key = '2025-12-05')
1764905065551|37|rollback|connection 0||
1764905224182|43|statement|connection 0|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'f37363de-7f88-4160-8988-67bbae6734af')
1764905224227|40|statement|connection 0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1996167627253301249 AND del_flag=0
1764905226124|38|statement|connection 0|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = ? AND status = ?)|SELECT id,biz_type,biz_type_name,biz_type_alias,biz_key,biz_key_name,biz_key_alias,biz_key_desc,biz_value,biz_value_ext,status,version,del_flag,create_by,create_time,update_by,update_time FROM sys_config WHERE del_flag=0 AND (biz_type = 'ivs.code.generator' AND status = 1)
1764905226204|39|statement|connection 0|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = 'jmai.checkNo' AND biz_key = '2025-12-05')
1764905226302|90|statement|connection 0|INSERT INTO sys_serial_number ( id, biz_type, biz_key, last_number, update_time ) VALUES ( ?, ?, ?, ?, ? )|INSERT INTO sys_serial_number ( id, biz_type, biz_key, last_number, update_time ) VALUES ( 1996783360353591297, 'jmai.checkNo', '2025-12-05', 0, '2025-12-04T18:22:02.205' )
1764905226345|38|statement|connection 0|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = ? AND biz_key = ?)|SELECT id,biz_type,biz_key,last_number,update_time FROM sys_serial_number WHERE (biz_type = 'jmai.checkNo' AND biz_key = '2025-12-05')
1764905226441|76|statement|connection 0|UPDATE sys_serial_number SET last_number=?,update_time=? WHERE (id = ? AND last_number = ? AND update_time = ?)|UPDATE sys_serial_number SET last_number=1,update_time='2025-12-05T11:27:06.359' WHERE (id = 1996783360353591297 AND last_number = 0 AND update_time = '2025-12-04T18:22:02')
1764905226490|44|commit|connection 0||
1764907070778|42|statement|connection 10|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'fa8e436a-13c7-4480-8071-e565d3f1188d')
1764907070836|36|statement|connection 10|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907073245|34|statement|connection 10|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'fa8e436a-13c7-4480-8071-e565d3f1188d')
1764907073281|33|statement|connection 10|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907073320|33|statement|connection 10|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907073358|36|statement|connection 10|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =?) or (type =2 and destroy_status =1 and accept_dept_id =?)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =1) or (type =2 and destroy_status =1 and accept_dept_id =1)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id
1764907073364|40|statement|connection 11|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907073421|40|statement|connection 11|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =?) or (type =2 and destroy_status =1 and accept_dept_id =?)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =1) or (type =2 and destroy_status =1 and accept_dept_id =1)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id
1764907144212|34|statement|connection 10|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = ?)|SELECT id,token,refresh_token,user_id,expiry_time,version,del_flag,create_by,create_time,update_by,update_time FROM sys_user_token WHERE del_flag=0 AND (token = 'fa8e436a-13c7-4480-8071-e565d3f1188d')
1764907144248|34|statement|connection 10|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907145782|34|statement|connection 10|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=? AND del_flag=0|SELECT id,name,mobile,salt,password,type,auth_dept_list,dept_id,role_list,status,ext,del_flag,create_by,create_time,update_by,update_time FROM sys_user WHERE id=1993956627447398401 AND del_flag=0
1764907145819|34|statement|connection 10|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =?) or (type =2 and destroy_status =1 and accept_dept_id =?)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id|select physic_name,physic_spec,batch_no,factory_name,unit,(IFNULL(sum(acquire_num),0) - IFNULL(sum(expend_num),0))as destroyNum from physic_storage_ampoule where ((type =2 and destroy_status =0 and accept_dept_id =1) or (type =2 and destroy_status =1 and accept_dept_id =1)) group by physic_name,physic_spec,batch_no,factory_name,accept_dept_id
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment