罗展丰
Published on 2025-08-01 / 51 Visits
0
0

framework-db 配置

yml配置

  1. 添加数据源

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: ${MYSQL_USER:root}
    password: ${MYSQL_PWD:nhdTaVMSAC}
    url: jdbc:mysql://192.168.181.121:3306/xdm-sit?serverTimezone=UTC&characterEncoding=utf8

  1. 配置属性

dbType:持久层框架,可选dme或mysql

mapper-locations:mapper扫描路径

log:日志打印级别,sql:只打印sql;debug:打印debug日志

highSqlDb:true:高代码使用xml直接访问db;false:使用dme服务编排

mybatis-flex:
  configuration:
    variables:
      dbType: ${store.dbType:dme}
    sql-parser:
      enable: true
  mapper-locations: classpath:/mapper/mysql/*.xml
  log: sql
  highSqlDb: false

高代码使用xml参考

dbProperties.isHighSqlDb() 判断是否用xml查询

PageHelper 分页插件

        PageResultVO<IqcBatchPassRateViewDTO> pageVO = new PageResultVO<>();
        // xml
        if (dbProperties.isHighSqlDb() ) {
                if (CollectionUtil.isNotEmpty(pageDTO.getDates())) {
                    pageDTO.setStartDateStr(pageDTO.getDates().get(0));
                }
                if (CollectionUtil.isNotEmpty(pageDTO.getDates()) && pageDTO.getDates().size() > 1) {
                    pageDTO.setEndDateStr(pageDTO.getDates().get(1));
                }

            PageHelper.startPage(pageDTO.getCurrent(), pageDTO.getSize());
            List<IqcBatchPassRate> list = iqcBatchPassRateDbMapper.report(pageDTO);
            PageInfo<IqcBatchPassRate> pageInfo = new PageInfo<>(list);

            pageVO.setTotal(pageInfo.getTotal());
            pageVO.setSize(pageDTO.getSize());
            pageVO.setCurrent(pageInfo.getPageNum());
            pageVO.setRecords(OrderReportConvert.INSTANCE.iqcBatchPassRate(pageInfo.getList()));

            //服务编排
        } else {
            QueryWrapper wrapper = initQueryWrapper(pageDTO, ReportTypeEnum.IQC_BATCH_PASS_RATE.getCode());
            Page<IqcBatchPassRate> iqcBatchPassRatePage = iqcBatchPassRateMapper.executePaginate(pageDTO.getCurrent(), pageDTO.getSize(), wrapper);
            pageVO = PageConvertUtil.pageConvertVO(iqcBatchPassRatePage, IqcBatchPassRateViewDTO.class, null);

        }
@Mapper
public interface IqcBatchPassRateDbMapper extends BaseMapper<IqcBatchPassRate> {
    List<IqcBatchPassRate> report(@Param("request") OrderReportRequestDTO requestDTO);
}
<mapper namespace="com.sie.mbm.mom.processcontrol.qualityreports.report.mapper.IqcBatchPassRateDbMapper">
    <select id="report" resultType="com.sie.mbm.mom.processcontrol.qualityreports.report.entity.IqcBatchPassRate">
        SELECT qio.partDesc AS partDesc, qio.partNo AS partNo, qio.partRevision AS partRevision, qio.vendorName AS vendorName,  qio.vendorCode AS vendorCode,
               sum(CASE WHEN qio.inspectOrderResult = 'OK' THEN 1 ELSE 0 END) AS inspectionPassBatcheNum, COUNT(*) AS inspectionBatcheNum,
               CASE WHEN COUNT(*) = 0 THEN 0 ELSE ROUND(SUM(CASE WHEN qio.inspectOrderResult = 'OK' THEN 1 ELSE 0 END)/COUNT(*)*100,2) END AS batchPassRate
        FROM qms_inspect_order AS qio
        WHERE qio.status = '30'  AND qio.rootFlag != '10'

        <if test="request.inspectOrderType != null and request.inspectOrderType != ''">
            AND qio.inspectOrderType = #{request.inspectOrderType}
        </if>

        <if test="request.partId != null and request.partId != ''">
            AND qio.partId = #{request.partId}
        </if>

        <if test="request.vendorId != null and request.vendorId != ''">
            AND qio.vendorId = #{request.vendorId}
        </if>

        <if test="request.startDateStr != null and request.startDateStr != '' and request.endDateStr != null and request.endDateStr != ''">
            AND DATE_FORMAT(qio.actualEndTime, '%Y-%m-%d %H:%i:%s') BETWEEN
            DATE_FORMAT(#{request.startDateStr}, '%Y-%m-%d 00:00:00') AND DATE_FORMAT(#{request.endDateStr}, '%Y-%m-%d 23:59:59')
        </if>

        <if test="request.tenantId != null and request.tenantId != ''">
            AND qio._tenantId = #{request.tenantId}
        </if>

        <if test="request.tenantId == null or request.tenantId == ''">
            AND qio._tenantId = '-1'
        </if>

        <if test="request.renterId != null and request.renterId != ''">
            AND qio.renterId = #{request.renterId}
        </if>

        <if test="request.siteId != null and request.siteId != ''">
            AND qio.siteId = #{request.siteId}
        </if>

        GROUP BY qio.partDesc, qio.partNo, qio.partRevision, qio.vendorName, qio.vendorCode
    </select>
</mapper>

切换事项


Comment