package com.sunda.spmsorder.mapper;

import com.sunda.spmsorder.entity.SpmsPdaUpdateVersion;
import com.sunda.spmsorder.entity.vo.MaterialDeliveryBoardsQueryVO;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * <p>
 * PDA软件更新版本表 Mapper 接口
 * </p>
 *
 * @author Wayne
 * @since 2024-03-05
 */
@Mapper
@Component
public interface SpmsPdaUpdateVersionMapper extends BaseMapper<SpmsPdaUpdateVersion> {
	
	@Select("<script>\n" +
            "SELECT\n" +
            "    SBND.UUID AS \"uuid\",\n" +
            "    SBND.VERSION_NAME AS \"versionName\",\n" +
            "    SBND.VERSION_CODE AS \"versionCode\",\n" +
            "    SBND.COMMENTS AS \"comments\",\n" +
            "    SBND.UPDATE_TYPE AS \"updateType\",\n" +
            "    SBND.ATTACHMENT_NAME AS \"attachmentName\",\n" +
            "    SBND.ATTACHMENT_URL AS \"attachmentUrl\",\n" +
            "    SBND.CREATE_TIME AS \"createTime\",\n" +
            "    SBND.CREATE_USER AS \"createUser\",\n" +
            "    SBND.UPDATE_TIME AS \"updateTime\",\n" +
            "    SBND.UPDATE_USER AS \"updateUser\",\n" +
            "    SBND.FBK1 AS \"fbk1\",\n" +
            "    SBND.FBK2 AS \"fbk2\",\n" +
            "    SBND.FBK3 AS \"fbk3\",\n" +
            "    SBND.FBK4 AS \"fbk4\",\n" +
            "    SBND.FBK5 AS \"fbk5\"\n" +
            "FROM\n" +
            "    SPMS_PDA_UPDATE_VERSION SBND\n" +
            "WHERE 1 = 1 \n" +
            "    <when test='dto.versionName !=null and dto.versionName != \"\" '> AND SBND.VERSION_NAME LIKE CONCAT('%', CONCAT(#{dto.versionName}, '%')) </when>\n" +
            "    <when test='dto.versionCode !=null and dto.versionCode != \"\" '> AND SBND.VERSION_CODE LIKE CONCAT('%', CONCAT(#{dto.versionCode}, '%')) </when>\n" +
            "ORDER BY SBND.CREATE_TIME DESC \n" +
            "</script>")
	List<Map<String, Object>> selectUpdateVersionList(IPage<Map<String, Object>> iPage, @Param("dto") SpmsPdaUpdateVersion dto);
	
	@Select("<script>\n" +
			"SELECT DD.* FROM ( \n" +
            "	SELECT\n" +
            "    	SBND.UUID AS \"uuid\",\n" +
            "    	SBND.VERSION_NAME AS \"versionName\",\n" +
            "    	SBND.VERSION_CODE AS \"versionCode\",\n" +
            "    	SBND.COMMENTS AS \"comments\",\n" +
            "    	SBND.UPDATE_TYPE AS \"updateType\",\n" +
            "    	SBND.ATTACHMENT_NAME AS \"attachmentName\",\n" +
            "    	SBND.ATTACHMENT_URL AS \"attachmentUrl\",\n" +
            "    	SBND.CREATE_TIME AS \"createTime\",\n" +
            "    	SBND.CREATE_USER AS \"createUser\",\n" +
            "    	SBND.UPDATE_TIME AS \"updateTime\",\n" +
            "    	SBND.UPDATE_USER AS \"updateUser\",\n" +
            "    	SBND.FBK1 AS \"fbk1\",\n" +
            "    	SBND.FBK2 AS \"fbk2\",\n" +
            "    	SBND.FBK3 AS \"fbk3\",\n" +
            "    	SBND.FBK4 AS \"fbk4\",\n" +
            "    	SBND.FBK5 AS \"fbk5\"\n" +
            "	FROM\n" +
            "    	SPMS_PDA_UPDATE_VERSION SBND\n" +
            "	WHERE 1 = 1 \n" +
            "	ORDER BY SBND.CREATE_TIME DESC \n" +
            ") DD \n" +
            "WHERE 1 = 1 AND <![CDATA[ ROWNUM <= 1 ]]> " +
            "</script>")
	Map<String, Object> selectLastUpdateVersion();

}
