跪求高手指教:将此JAVA方法改写成sqlserver存储过程,

问题描述

跪求高手指教:将此JAVA方法改写成sqlserver存储过程,

/**
* 计算并保存遗漏值
*
* @CreateDate Dec 16, 2013 - 2:48:44 PM
* @param request
*/
@SuppressWarnings("unchecked")
public void saveOmitValue(HttpServletRequest request) {
// 获取当前日期
String date = DateUtils.formatDate(new Date());
// 获取前一天日期
String BeforeDay = DateUtils.getTheDayBeforeDay();
// 存储执行sql的变量
StringBuilder strBui = new StringBuilder(1000000);
// 查询方案一列中最大的中奖号码的排列号需要的map
Map map = new HashMap();
// 查询用sql
StringBuilder sql = new StringBuilder(4000);
// 查询用条件
StringBuilder searchCondition = new StringBuilder(4000);
// 获取当前登录的用户
User user = (User) request.getSession().getAttribute(Constants.USER_KEY);
// 获取开奖号对应的代码
String[] winningNoCode = request.getParameterValues("winningNoCode");
// 临时的前一天遗漏值
int temOmitValue = 0;
// 得到查询条件
for (int k = 0; k < winningNoCode.length; k++) {
if (k == 0) {
searchCondition.append("(B.NO_MSG = " + winningNoCode[k] + " AND A.SCHEME_SEQ = " + (k + 1) + ")");
}
searchCondition.append("OR(B.NO_MSG = " + winningNoCode[k] + " AND A.SCHEME_SEQ = " + (k + 1) + ")");
}
// 删除当天的遗漏值记录
sql.append("DELETE OMIT_VALUE_COORD WHERE BET_MODEL_ID='" + user.getBetModelId() + "' AND CREATE_DATE='" + date
+ "'");
Pwfci.SQLdeleteValue(sql.toString());
// 查询前100条方案
sql.setLength(0);
sql.append("select TOP 100 * from TWO_SCHEME_F WHERE DEL_FLAG = '1' AND BET_MODEL_ID = '"
+ user.getBetModelId() + "' ORDER BY ID");
List tsfs = (List) Pwfci.queryAllBySQL(sql.toString(), TwoSchemeF.class);

    for (TwoSchemeF tsf : tsfs) {
        System.out.println("计算遗漏值时间--Bengin       >>>>>>> "+DateUtils.formatDateTime(new Date()));
        // 和值方案遗漏值插入
        if (tsf.getType() == 1) {
            for (int j = 2; j < 112; j++) {
                // 查询方案一列中最大的中奖号码的排列号
                sql.setLength(0);
                sql.append("SELECT MAX(A.SCHEME_SEQ) AS MAX_COUNT "
                        + "FROM SCHEME_SEQ A LEFT JOIN IDENTIFY_NO B ON A.IDENTIFY_NO_XCOORD=B.XCOORD "
                        + "AND B.CODE = " + tsf.getType() + " AND B.YIDENTIFY = " + j + " WHERE A.PID = "
                        + tsf.getId() + " AND A.SCHEME_SEQ <= " + winningNoCode.length + " AND(");
                sql.append(searchCondition);
                sql.append(");");
                map = Pwfci.getMapBySQL(sql.toString());
                String maxCount = (String) map.get("MAX_COUNT");
                // 如果等于空说明当天此方案此列没有中奖,遗漏值为开奖期数加上前一天的遗漏值
                if (maxCount.equals("")) {
                    // 查询前一天的遗漏值
                    sql.setLength(0);
                    sql.append("SELECT OMIT_VALUE FROM OMIT_VALUE_COORD WHERE PID=" + tsf.getId()
                            + " AND YCOORD = " + j + " AND CREATE_DATE = '" + BeforeDay
                            + "' AND DEL_FLAG='1' AND BET_MODEL_ID='" + user.getBetModelId() + "'");
                    map = Pwfci.getMapBySQL(sql.toString());
                    temOmitValue = map.get("OMIT_VALUE") != null ? Integer.parseInt(map.get("OMIT_VALUE")
                            .toString()) : 0;
                    // 插入遗漏值
                    sql.setLength(0);
                    sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG,"
                            + "CREATE_DATE,BET_MODEL_ID) VALUES('" + UUID.randomUUID() + "',"
                            + (winningNoCode.length + temOmitValue) + "," + tsf.getId() + "," + j + ",'1','" + date
                            + "','" + user.getBetModelId() + "');");
                    strBui.append(sql);
                } else {
                    // 如果不等于空,遗漏值为此排列号之后的总数
                    sql.setLength(0);
                    sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG,"
                            + "CREATE_DATE,BET_MODEL_ID) " + "SELECT '" + UUID.randomUUID() + "',COUNT(ID),"
                            + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId()
                            + "' FROM SCHEME_SEQ WHERE PID = " + tsf.getId() + " AND SCHEME_SEQ <= "
                            + winningNoCode.length + " AND SCHEME_SEQ > " + maxCount + " ;");
                    strBui.append(sql);
                }
            }
        }
        // 差额方案遗漏值插入
        if (tsf.getType() == 0) {
            for (int j = 0; j < 110; j++) {
                // 查询方案一列中最大的中奖号码的排列号
                sql.setLength(0);
                sql.append("SELECT MAX(A.SCHEME_SEQ) AS MAX_COUNT "
                        + "FROM SCHEME_SEQ A LEFT JOIN IDENTIFY_NO B ON A.IDENTIFY_NO_XCOORD=B.XCOORD "
                        + "AND B.CODE = " + tsf.getType() + " AND B.YIDENTIFY = " + j + " WHERE A.PID = "
                        + tsf.getId() + " AND A.SCHEME_SEQ <= " + winningNoCode.length + " AND(");
                sql.append(searchCondition);
                sql.append(");");
                map = Pwfci.getMapBySQL(sql.toString());
                String maxCount = (String) map.get("MAX_COUNT");
                // 如果等于空说明当天此方案此列没有中奖,遗漏值为开奖期数加上前一天的遗漏值
                if (maxCount.equals("")) {
                    // 查询前一天的遗漏值
                    sql.setLength(0);
                    sql.append("SELECT OMIT_VALUE FROM OMIT_VALUE_COORD WHERE PID=" + tsf.getId()
                            + " AND YCOORD = " + j + " AND CREATE_DATE = '" + BeforeDay
                            + "' AND DEL_FLAG='1' AND BET_MODEL_ID='" + user.getBetModelId() + "'");
                    map = Pwfci.getMapBySQL(sql.toString());
                    temOmitValue = map.get("OMIT_VALUE") != null ? Integer.parseInt(map.get("OMIT_VALUE")
                            .toString()) : 0;
                    // 插入遗漏值
                    sql.setLength(0);
                    sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG,"
                            + "CREATE_DATE,BET_MODEL_ID) VALUES('" + UUID.randomUUID() + "',"
                            + (winningNoCode.length + temOmitValue) + "," + tsf.getId() + "," + j + ",'1','" + date
                            + "','" + user.getBetModelId() + "');");
                    strBui.append(sql);
                } else {
                    // 如果不等于空,遗漏值为此排列号之后的总数
                    sql.setLength(0);
                    sql.append("INSERT INTO OMIT_VALUE_COORD(ID,OMIT_VALUE,PID,YCOORD,DEL_FLAG,"
                            + "CREATE_DATE,BET_MODEL_ID) " + "SELECT '" + UUID.randomUUID() + "',COUNT(ID),"
                            + tsf.getId() + "," + j + ",'1','" + date + "','" + user.getBetModelId()
                            + "' FROM SCHEME_SEQ WHERE PID = " + tsf.getId() + " AND SCHEME_SEQ <= "
                            + winningNoCode.length + " AND SCHEME_SEQ > " + maxCount);
                    strBui.append(sql);
                }
            }
        }
        System.out.println("计算遗漏值时间--End      >>>>>>> "+DateUtils.formatDateTime(new Date()));
        Pwfci.SQLinsertValue(strBui.toString());
        strBui.setLength(0);
    }
}
时间: 2024-08-03 04:46:16

跪求高手指教:将此JAVA方法改写成sqlserver存储过程,的相关文章

linux-搭建apache+svn 环境,当安装serf-1.3.3.tar.bz2 时遇到下面的问题?跪求高手指教!

问题描述 搭建apache+svn 环境,当安装serf-1.3.3.tar.bz2 时遇到下面的问题?跪求高手指教! [root@server0 serf-1.3.3]# scons APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apu-1-config OPENSSL=/usr/loccal/ssl buckets/deflate_buckets.c buckets/deflate_buckets.c:18:18: er

跪求高手,java中有哪些好用的网页在线编辑器

问题描述 主要能实现对文字内容编排(字体.排版.大小及颜色设置),上传图片及视频之前在网上找到了FCKeditor该网页编辑器,但是该功能字体格式很少,设置起来显示的字体也与设置的样式不符,字体颜色设置也有问题,没法正常设置,也不知从何去修改它的js.跪求高手帮帮忙,提供个好用的.功能没有问题的编辑器,或者有用过FCKeditor编辑器知道如何去修改的,麻烦提供个方法,谢谢了.... 解决方案 解决方案二:FCKeditor升级成ckeditor了,还不错的解决方案三:用这个试试解决方案四:引用

新手 菜鸟 问题-新手求高手指教一下。。。

问题描述 新手求高手指教一下... 在Java中,一个类中各方法中的返回值与调用有什么联系??? 解决方案 调用函数得到返回值. 比如 int a = add(2, 3); int add(int a, int b) { return a + b; } 那么函数add的返回值会返回给函数的调用者. 解决方案二: 我给你分成三个关键词. 方法,方法中的返回值,调用. 方法,包含执行的过程与返回值, 而方法中的返回值,只是方法的一部分,可以是自己自定义的,也可以使在方法中的代码获得的. 调用,调用的

编程-Yahoo UI(引用)问题,求高手指教!

问题描述 Yahoo UI(引用)问题,求高手指教! http://img.my.csdn.net/uploads/201309/02/1378129656_3660.jpg <!DOCTYPE html> new document <!--引入一个yui3的种子文件--> .hello{ background-color:red } <script type="text/javascript" src="http://yui.yahooapis

jdbc pring-c3p0连接线程中断,求高手指教,在线等

问题描述 c3p0连接线程中断,求高手指教,在线等 [ts-merchant-bill-dbfix-job]2015-03-07 19:37:21,617 INFO [com.mchange.v2.log.MLog] MLog clients using log4j logging. [ts-merchant-bill-dbfix-job]2015-03-07 19:37:21,650 INFO [com.mchange.v2.c3p0.C3P0Registry] Initializing c3

跪求大家来找茬java代码

问题描述 跪求大家来找茬java代码 跪求高手帮忙,做一个java程序,名字叫做大家来找茬,在线等

应用布署在Websphere下后连不上oracle数据库,跪求高手指点,谢谢!

问题描述 我的应在布署在weblogic下可以正常运行,但切换布署到Websphere下后连不上oracle数据库,跪求高手指点,日起如下:谢谢![10-11-1116:31:51:715CST]00000016ConnectionFacEJ2CA0009E:尝试实例化资源ibps使用的ManagedConnectionFactory类com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl时发生异常:java.lang.reflect.In

关于android的发送带附件的邮箱问题,跪求高手答疑

问题描述 关于android的发送带附件的邮箱问题,跪求高手答疑 是这样的,已经获取了文件所在的位置,例如"/sdcard/a.doc"这个位置, file是要如何定义这个地址的位置? 下面的是我网上找到的代码,file里面的参数是什么含义?Intent email = new Intent(android.content.Intent.ACTION_SEND); // 附件 File file = new File(Environment.getExternalStorageDire

.net中从数据库中查询数据的问题!!求高手指教~

问题描述 .net中从数据库中查询数据的问题!!求高手指教~ protected void Button1_Click(object sender EventArgs e) { string SQL = ""select * from AllItems where 1=1""; if (!string.IsNullOrEmpty(this.TextBox1.Text)) { SQL = SQL + "" and BianHao='"&q