首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

struts2 jsp镜头 list値のkeep と listの項目の判断 popupサンプル

2013-10-15 
struts2 jsp画面 list値のkeep と listの項目の判断popupサンプル%@ page languagejava contentTypetext/htm

struts2 jsp画面 list値のkeep と listの項目の判断 popupサンプル

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="sj" uri="/struts-jquery-tags"%><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta http-equiv="x-ua-compatible" content="ie=7" /><%@ include file="/common/jsp/yk_head.jsp"%><script type='text/javascript'>//呼出元アクションvar myaction;/*actionを呼び出す*/function submitDataForm(action) {document.searchModelForm.action = action;formSubmit(action, document.searchModelForm);}/*画面初期設定*/function setColumnInit() {// 画面サイズ変更resizeResultDivHeight();}// 用紙種別function openWindowYosisybt() {var action = "/yk/PaperKindPopupInit?";// 子画面を呼び出して、戻り値を取得するopenModalWindow(action,"dialogWidth=820px;dialogHeight=625px;status:false;");}/*画面パラメーター設定*/function setYosisybt(yosisybtcode,yosikbn_code, yosisybtname,yosisybtryakname) {document.getElementById("yosisybtcode").value = yosisybtcode;document.getElementById("yosisybtnameLbl").innerHTML = yosisybtname;document.getElementById("yosisybtname").value = yosisybtname;document.getElementById("yosikbn_code").value = yosikbn_code;document.getElementById("yosisybtryakname").value = yosisybtryakname;}</script><title><s:property value="title" /></title></head><body onload="resizeResultDivHeight();setErrControls(document.searchModelForm, '<s:property value="errControls"/>');setColumnInit();"><div width="100%"><%@ include file="/common/jsp/title.jsp"%><tr align="right" colspan="7"><ahref="javascript:formSubmit('<s:property value="backAction"/>', document.searchModelForm);">呼出し元へ</a></td></tr></table></div><div id="contents_0402" >       <s:form id="searchModelForm" name="searchModelForm" theme="simple">        <div >             <%@ include file="/common/jsp/message.jsp"%>                     <table style="width: 100%">                           <tr>                                <td width="35%" height="20" ><div align="right"><strong>検索条件:</strong></div></td>                             <td width="7%" align="center"  style=text-align:right align="center"><s:property value="ksanyymm"/></td><td  colspan="1">&nbsp;</td>                            </tr>                            <tr><td width="35%">&nbsp;</td><td width="7%" name="yosisybtcode"id="yosisybtcode" onblur="checkNumber(yosisybtcode,3,0,0,0)"></s:textfield></td><td width="8%"  ><input name="search2" type="button" value="検索" onclick="openWindowYosisybt();" /><label id="yosisybtnameLbl"><s:propertyvalue="yosisybtname" /></label></td>   <td >&nbsp;</td>                            </tr>                    </table><p></p>                    <table cellspacing="0" cellpadding="0" style="width:1000px;">                       <tr>                        <td width="70%" >&nbsp;</td>                        <td>                        <input type="button" value="  実行  "  id="searchBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingSearch');"/>&nbsp;                        <input type="button" id="printBtn" value="在庫管理表出力" onclick="submitDataForm('/yk/StockManageTablePrint');"/>                        </td>                   </tr>             </table>            </div>       </div>     <s:if test="updetailCount > 0 ">    <div style="border-style: solid; border-width: 0px 0px 1px 0px;background-color: #FDEDDF;">      <table style="width: 100%;border: 0" >                  <tr  >                      <td  width="10">&nbsp;</td>                     <s:iterator value="upDataList"  var="detail" status="stat" >                       <td width="10%" <s:if test="upDataList[%{#stat.index}].colorchangeflg"></s:if><s:else> list="#{'yosimekacode':'yosimekaname'} " listKey="yosimekacode"listValue="yosimekaname" value=""></s:radio>         </td></s:iterator>                      <td  width="10">&nbsp;</td>                      <td > <input type="button" value=" 選択 "  id="selectBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingSelect');"/></td>                   </tr>                </table>                    <table width="100%"  >                         <tr>                             <td width="600"></td>                          <td width="21"><div align="right">※</div></td>                             <td width="20" align="center"></td>                             <td width="120" align="center"><div align="left">は登録済み</div></td>                             <td width="21"><div align="right">※</div></td>                             <td width="20"align="center"> </td>                             <td width="100" align="center"><div align="left">は未登録</div></td>                             <td width="200"></td>                         </tr>                         <tr>                             <td colspan="8">&nbsp;</td>                                 <td ><input type="button" value="  確 認  "  id="confirmBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingConfirm');"/>&nbsp;                                 </td>                                 <td  width="50"><input type="button" value="  登 録   " id="registerBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingRegister');"/></td>                                 <td width="100" >&nbsp;</td>                             </tr>                         </table>             </div>           </s:if>         <s:if test="downDetailCount > 0 ">    <div style="border-style: solid; border-width: 0px 0px 1px 0px;background-color: #FDEDDF;">            <table  id="search_result_table_header" style="width:820px;margin-left: 25%">                  <tr>                      <th width="20%" style="min-width:720px;max-width:820px;border-width: 0px;margin-left: 25%">            <table style="width:820px;margin-top:-3px;">            <s:iterator value="downDataList" status="stat" var="detail">                       <tr <s:if test="%{#stat.index % 2 != 0}"> </s:if><s:else> </s:else>>                          <td width="20%" ><s:property value="#detail.yosisybtryakname" /></td>                          <td width="16%" align="right"><s:property value="%{formatNumber(#detail.deliveryserialnumber)}" /></td>                           <td width="16%"  align="right"><s:property value="%{formatNumber(#detail.kojoukirrnsutotal)}" /></td>                           <td width="16%" align="right" ><s:textfield name="dataList[%{#stat.index}].sirernsu" id="dataList[%{#stat.index}].sirernsu"  value="%{formatNumber(#detail.sirernsu)}" size="10" onblur="checkNumber(this, 9, 2, 0, 0)"/></td>                          <td width="16%" align="right"><s:property value="%{formatNumber(#detail.hksnhnpnrnsu)}" /></td>                      <td width="16%" align="right"><s:property value="%{formatNumber(#detail.realbuyserialnumber)}" /></td>                             <s:hidden name="downDataList[%{#stat.index}].yosisybtcode" value="%{#detail.yosisybtcode}"/>                 <s:hidden name="downDataList[%{#stat.index}].yosisybtryakname" value="%{#detail.yosisybtryakname}"/>                 <s:hidden name="downDataList[%{#stat.index}].deliveryserialnumber" value="%{#detail.deliveryserialnumber}"/>                 <s:hidden name="downDataList[%{#stat.index}].kojoukirrnsutotal" value="%{#detail.kojoukirrnsutotal}"/>                 <s:hidden name="downDataList[%{#stat.index}].hksnhnpnrnsu" value="%{#detail.hksnhnpnrnsu}"/>           <s:hidden name="downDataList[%{#stat.index}].realbuyserialnumber" value="%{#detail.realbuyserialnumber}"/>                        </tr>                        </s:iterator>                          <tr <s:if test="%{downDetailCount % 2 != 0}"> </s:if><s:else> </s:else>>                          <td width="20%" >合計</td>                          <td width="16%" align="right"><s:property value="totaldeliveryserialnumber" /></td>                           <td width="16%"  align="right"><s:property value="totalkojoukirrnsutotal" /></td>                           <td width="16%" align="right" ><s:property value="totalsirernsu" /></td>                          <td width="16%" align="right"><s:property value="totalhksnhnpnrnsu"/></td>                      <td width="16%" align="right"><s:property value="totalrealbuyserialnumber" /></td>                             <s:hidden name="totaldeliveryserialnumber" value="totaldeliveryserialnumber"/>                 <s:hidden name="totalkojoukirrnsutotal" value="totalkojoukirrnsutotal"/>                 <s:hidden name="totalsirernsu" value="totalsirernsu" />                 <s:hidden name="totalhksnhnpnrnsu" value="totalhksnhnpnrnsu" />                 <s:hidden name="totalrealbuyserialnumber" value="totalrealbuyserialnumber"/>                        </tr>                   </table>               </div>              </div>           </s:if>            <input type="hidden" id="detailCount" name="detailCount" value="<s:property value="detailCount"/>" />            <input type="hidden" id="yosisybtname" name="yosisybtname"value="<s:property value="yosisybtname"/>" /><input type="hidden" id="yosikbn_code" name="yosikbn_code" value="<s:property value="yosikbn_code"/>" />    <input type="hidden" id="yosisybtryakname" name="yosisybtryakname"value="<s:property value="yosisybtryakname"/>" /><input type="hidden" id="ksanyymm"  name="ksanyymm" value="<s:property value="ksanyymm"/>" />            <%@ include file="/common/jsp/common_hidden_controls.jsp"%>        </s:form>        </div></body></html>


service
package jp.co.asahi_np.biz.bus.online.yk.buyk0402.service;import static jp.co.asahi_np.biz.bus.common.constant.ComConst.RESULT_SUCCESS;import java.math.BigDecimal;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.HashMap;import java.util.List;import jp.co.asahi_np.biz.bus.common.asposecells.BorderWrapper;import jp.co.asahi_np.biz.bus.common.asposecells.CellsWrapper;import jp.co.asahi_np.biz.bus.common.asposecells.StyleWrapper;import jp.co.asahi_np.biz.bus.common.asposecells.WorkbookWrapper;import jp.co.asahi_np.biz.bus.common.asposecells.WorksheetWrapper;import jp.co.asahi_np.biz.bus.common.asposecells.definition.BackgroundTypeDef;import jp.co.asahi_np.biz.bus.common.asposecells.definition.BorderTypeDef;import jp.co.asahi_np.biz.bus.common.asposecells.definition.CellBorderTypeDef;import jp.co.asahi_np.biz.bus.common.asposecells.definition.ColorDef;import jp.co.asahi_np.biz.bus.common.constant.MessageConst;import jp.co.asahi_np.biz.bus.common.exception.ApplicationException;import jp.co.asahi_np.biz.bus.common.exception.BUException;import jp.co.asahi_np.biz.bus.common.function.ConsumptionTax;import jp.co.asahi_np.biz.bus.common.function.ConsumptionTaxFunc;import jp.co.asahi_np.biz.bus.common.service.BaseService;import jp.co.asahi_np.biz.bus.common.spool.CommonSpool;import jp.co.asahi_np.biz.bus.common.spool.DataFileType;import jp.co.asahi_np.biz.bus.common.utility.CheckUtil;import jp.co.asahi_np.biz.bus.common.utility.FileUtil;import jp.co.asahi_np.biz.bus.common.utility.XMLLoader;import jp.co.asahi_np.biz.bus.online.is.constant.ISMessagaeConst;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockManageTablePrintDto;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailDownDto;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailUpDto;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.model.StockingSerialNumberMatchingModel;import jp.co.asahi_np.biz.bus.online.yk.constant.YKConst;import jp.co.asahi_np.biz.bus.online.yk.constant.YKMessagaeConst;import jp.co.asahi_np.biz.bus.online.yk.dto.Yk0120mtDto;/**. * *仕入連数照合(本社購買部門) 画面初期化/検索処理用サービスクラス * */public class StockingSerialNumberMatchingService extends BaseService {    /**     *actionFlagフラグ_検索処理。     */    private static final String ACTIONFLAG_ONE = "1";    /**     * パス。     */    private static final String TEMP_PATH = "//Common/TempPath";    /**     * 幅:10。     */    private static final Double WIDTH10 = 10e0;    /**     * 幅:25。     */    private static final Double WIDTH25 = 25e0;    /**     * 仕入連数照合(本社購買部門)画面初期化処理。     *     * @param  searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String initExecute(StockingSerialNumberMatchingModel searchModel) throws BUException {        // ログを出力        logger.writeStartLog(" 「仕入連数照合(本社購買部門)」画面初期化処理_開始");        //決算年月項目設定        getKsanyymm(searchModel);        // 検索件数に"0"を設定する        searchModel.setUpdetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);        searchModel.setDownDetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);        // ログを出力        logger.writeEndLog(" 「仕入連数照合(本社購買部門)」画面初期化処理_終了");        return RESULT_SUCCESS;    }    /**     * 実行ボタン押下処理。     *     * @param  searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String searchExecute(StockingSerialNumberMatchingModel searchModel) throws BUException {        // ログを出力        logger.writeStartLog("実行ボタン押下処理_開始(SearchExecute)");        // 明細一覧検索を行う        doSearch(searchModel);        // ログを出力        logger.writeEndLog("実行ボタン押下処理_終了(SearchExecute)");        return RESULT_SUCCESS;    }    /**     * 実行ボタン押下検索処理。     *     * @param searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    private String doSearch(StockingSerialNumberMatchingModel searchModel) throws BUException {        //自動生成されたメソッド?スタブ        XMLLoader xmlLoader = new XMLLoader();        //未来年月はエラー        if (this.getLongDiffDays(searchModel.getKsanyymm())) {            throw new ApplicationException(YKMessagaeConst.MSG_ID_E_YK_ME440048,                    new String[] { "" },                    new String[] { "searchBtn" });        }        // 最大件数を取得する        long maxCount = xmlLoader.getMaxDisplayCnt(searchModel.getScreenId());        //検索パラメータ        HashMap<String, String> condition = new HashMap<String, String>();        //決算年月日        condition.put("ksanyymm", searchModel.getKsanyymm());        //用紙種別コード        condition.put("yosisybtcode", searchModel.getYosisybtcode());        //セッションのログイン社コード        condition.put("shacode", searchModel.getCompanyCode());        // データを取得する        List<StockingSerialNumberMatchingDetailUpDto> dbDataList =                dao.queryForList(StockingSerialNumberMatchingDetailUpDto.class, "QTB_YK0300TRS003", condition);        // テーブル件数        long selectCount = dbDataList.size();        // 検索件数が0件の場合        if (selectCount == YKConst.SEARCH_COUNT_LONG_ZERO) {            // 検索件数設定(0件設定:明細一覧出ない)            searchModel.setUpdetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);            // エラーメッセージ出力            throw new ApplicationException(MessageConst.MSG_ID_E_NOT_MATCH_CONDITION,                    new String[] { "" },                    new String[] { "searchBtn" });        }        // 最大件数より大きい場合        if (selectCount > maxCount) {            // 検索件数設定(0件と見做す:明細一覧出ない)            searchModel.setUpdetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);            throw new ApplicationException(ISMessagaeConst.MSG_ID_E_IS_ME200008,                    new String[] { "" },                    new String[] { "searchBtn" });        }        List<StockingSerialNumberMatchingDetailUpDto> upDataList = null;        if (dbDataList != null && dbDataList.size() > 0) {            upDataList = new ArrayList<StockingSerialNumberMatchingDetailUpDto>();            for (StockingSerialNumberMatchingDetailUpDto dto : dbDataList) {                if (dto.getSirernsutotal().doubleValue() > 0) {                    dto.setColorchangeflg(true);                } else                {                    dto.setColorchangeflg(false);                }                upDataList.add(dto);            }        }        // 明細一覧設定        searchModel.setUpDataList(upDataList);        // 検索件数設定        searchModel.setUpdetailCount(selectCount);        return RESULT_SUCCESS;    }    /**     * 選択ボタン押下処理。     *     * @param  searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String selectExecute(StockingSerialNumberMatchingModel searchModel) throws BUException {        // ログを出力        logger.writeStartLog("選択ボタン押下処理_開始(SearchExecute)");        // 画面各プロダウンの設定        getKsanyymm(searchModel);        // 選択ボタン押下処理を行う        doSelect(searchModel);        // ログを出力        logger.writeEndLog("選択ボタン押下処理_終了(SearchExecute)");        return RESULT_SUCCESS;    }    /**     * 選択ボタン押下検索処理。     *     * @param searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    private String doSelect(StockingSerialNumberMatchingModel searchModel) throws BUException {        //自動生成されたメソッド?スタブ        XMLLoader xmlLoader = new XMLLoader();        // 最大件数を取得する        long maxCount = xmlLoader.getMaxDisplayCnt(searchModel.getScreenId());        if (searchModel.getCheckedyosimekacode() == null) {            // エラーメッセージ出力            throw new ApplicationException(YKMessagaeConst.MSG_ID_E_YK_ME440047,                    new String[] { "" },                    new String[] { "selectBtn" });        }        //検索パラメータ        HashMap<String, String> condition = new HashMap<String, String>();        //決算年月日        condition.put("ksanyymm", searchModel.getKsanyymm());        //用紙種別コード        condition.put("yosisybtcode", searchModel.getYosisybtcode());        //セッションのログイン社コード        condition.put("shacode", searchModel.getCompanyCode());        condition.put("checkedyosimekacode", searchModel.getCheckedyosimekacode());        // データを取得する        List<StockingSerialNumberMatchingDetailDownDto> dbDataList =                dao.queryForList(StockingSerialNumberMatchingDetailDownDto.class, "QTB_YK0300TRS004", condition);        // テーブル件数        long selectCount = dbDataList.size();        // 検索件数が0件の場合        if (selectCount == YKConst.SEARCH_COUNT_LONG_ZERO) {            // 検索件数設定(0件設定:明細一覧出ない)            searchModel.setDownDetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);            // エラーメッセージ出力            throw new ApplicationException(MessageConst.MSG_ID_E_NOT_MATCH_CONDITION,                    new String[] { "" },                    new String[] { "selectBtn" });        }        // 最大件数より大きい場合        if (selectCount > maxCount) {            // 検索件数設定(0件と見做す:明細一覧出ない)            searchModel.setDownDetailCount(YKConst.SEARCH_COUNT_LONG_ZERO);            throw new ApplicationException(ISMessagaeConst.MSG_ID_E_IS_ME200008,                    new String[] { "" },                    new String[] { "selectBtn" });        }        List<StockingSerialNumberMatchingDetailDownDto> downDataList = null;        //明細部(下段)リストに仕入連数合計        BigDecimal totalsirernsu = BigDecimal.valueOf(0.0);        //明細部(下段)リストに白損返品連数合計        BigDecimal totalhksnhnpnrnsu = BigDecimal.valueOf(0.0);        //明細部(下段)リストに工場受入連数合計        BigDecimal totalkojoukirrnsutotal = BigDecimal.valueOf(0.0);        //明細部(下段)リストに実購入連数合計        BigDecimal totalrealbuyserialnumber = BigDecimal.valueOf(0.0);        //明細部(下段)リストにデリバリー連数合計        BigDecimal totaldeliveryserialnumber = BigDecimal.valueOf(0.0);        if (dbDataList != null && dbDataList.size() > 0) {            downDataList = new ArrayList<StockingSerialNumberMatchingDetailDownDto>();            for (StockingSerialNumberMatchingDetailDownDto dto : dbDataList) {                totalsirernsu = totalsirernsu.add(dto.getSirernsu());                totalhksnhnpnrnsu = totalhksnhnpnrnsu.add(dto.getHksnhnpnrnsu());                totalkojoukirrnsutotal = totalkojoukirrnsutotal.add(dto.getKojoukirrnsutotal());                totalrealbuyserialnumber = totalrealbuyserialnumber.add(dto.getRealbuyserialnumber());                totaldeliveryserialnumber = totaldeliveryserialnumber.add(dto.getDeliveryserialnumber());                if (dto.getSirernsu().intValue() == 0) {                    //仕入連数(0の場合、工場受入連数の設定する)                    dto.setSirernsu(dto.getKojoukirrnsutotal());                }                if (dto.getKojoukirrnsutotal() != dto.getDeliveryserialnumber()) {                    dto.setColorchangeflg(true);                } else {                    dto.setColorchangeflg(false);                }                downDataList.add(dto);            }        }        // 明細一覧設定        searchModel.setDownDataList(downDataList);        // 検索件数設定        searchModel.setDownDetailCount(selectCount);        searchModel.setTotaldeliveryserialnumber(totaldeliveryserialnumber);        searchModel.setTotalhksnhnpnrnsu(totalhksnhnpnrnsu);        searchModel.setTotalkojoukirrnsutotal(totalkojoukirrnsutotal);        searchModel.setTotalrealbuyserialnumber(totalrealbuyserialnumber);        searchModel.setTotalsirernsu(totalsirernsu);        return RESULT_SUCCESS;    }    /**     * 確認ボタン押下処理。     *     * @param  searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String confirmExecute(StockingSerialNumberMatchingModel searchModel) throws BUException {        // ログを出力        logger.writeStartLog("確認ボタン押下処理_開始(SearchExecute)");        // 画面各プロダウンの設定        getKsanyymm(searchModel);        // 確認ボタン押下処理を行う        doConfirm(searchModel);        // ログを出力        logger.writeEndLog("確認ボタン押下処理_終了(SearchExecute)");        return RESULT_SUCCESS;    }    /**     * 確認ボタン押下処理。     *     * @param searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    private String doConfirm(StockingSerialNumberMatchingModel searchModel) throws BUException {        List<StockingSerialNumberMatchingDetailDownDto> downDataList = null;        //明細部(下段)リストに仕入連数合計        BigDecimal totalsirernsu = BigDecimal.valueOf(0.0);        //明細部(下段)リストに白損返品連数合計        BigDecimal totalhksnhnpnrnsu = BigDecimal.valueOf(0.0);        //明細部(下段)リストに工場受入連数合計        BigDecimal totalkojoukirrnsutotal = BigDecimal.valueOf(0.0);        //明細部(下段)リストに実購入連数合計        BigDecimal totalrealbuyserialnumber = BigDecimal.valueOf(0.0);        //明細部(下段)リストにデリバリー連数合計        BigDecimal totaldeliveryserialnumber = BigDecimal.valueOf(0.0);        //実購入連数        BigDecimal realbuyserialnumber = BigDecimal.valueOf(0.0);        if (searchModel.getDownDataList() != null && searchModel.getDownDataList().size() > 0) {            downDataList = new ArrayList<StockingSerialNumberMatchingDetailDownDto>();            for (StockingSerialNumberMatchingDetailDownDto dto : searchModel.getDownDataList()) {                //実購入連数=仕入連数 - 白損返品連数                realbuyserialnumber = dto.getSirernsu().subtract(dto.getHksnhnpnrnsu());                dto.setRealbuyserialnumber(realbuyserialnumber);                if (dto.getKojoukirrnsutotal() != dto.getDeliveryserialnumber()) {                    dto.setColorchangeflg(true);                } else {                    dto.setColorchangeflg(false);                }                totalsirernsu = totalsirernsu.add(dto.getSirernsu());                totalhksnhnpnrnsu = totalhksnhnpnrnsu.add(dto.getHksnhnpnrnsu());                totalkojoukirrnsutotal = totalkojoukirrnsutotal.add(dto.getKojoukirrnsutotal());                totalrealbuyserialnumber = totalrealbuyserialnumber.add(realbuyserialnumber);                totaldeliveryserialnumber = totaldeliveryserialnumber.add(dto.getDeliveryserialnumber());                downDataList.add(dto);            }        }        // 明細一覧設定        searchModel.setDownDataList(downDataList);        // 検索件数設定        long selectCount = searchModel.getDownDataList().size();        searchModel.setDownDetailCount(selectCount);        searchModel.setTotaldeliveryserialnumber(totaldeliveryserialnumber);        searchModel.setTotalhksnhnpnrnsu(totalhksnhnpnrnsu);        searchModel.setTotalkojoukirrnsutotal(totalkojoukirrnsutotal);        searchModel.setTotalrealbuyserialnumber(totalrealbuyserialnumber);        searchModel.setTotalsirernsu(totalsirernsu);        // 明細一覧設定        searchModel.setDownDataList(downDataList);        return RESULT_SUCCESS;    }    /**     * 「仕入連数照合(本社購買部門)」 登録用処理。     *     * @param  searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String registerExecute(StockingSerialNumberMatchingModel searchModel) throws BUException {        // ログを出力        logger.writeStartLog("「仕入連数照合(本社購買部門)」 登録用処理_開始(SearchExecute)");        // 画面各プロダウンの設定        getKsanyymm(searchModel);        // 登録を行う        doRegister(searchModel);        searchExecute(searchModel);        // ログを出力        logger.writeEndLog("「仕入連数照合(本社購買部門)」 登録用処理_終了(SearchExecute)");        return RESULT_SUCCESS;    }    /**     * 「仕入連数照合(本社購買部門)」 登録用処理。     *     * @param searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    private String doRegister(StockingSerialNumberMatchingModel searchModel) throws BUException {        //検索パラメータ        HashMap<String, Object> condition = new HashMap<String, Object>();        //用紙種別コード        condition.put("yosisybtcode", searchModel.getYosisybtcode());        //用紙区分コード        condition.put("yosikbn_code", searchModel.getYosikbn_code());        //画面明細部(上段).用紙メーカーコード        condition.put("yosimekacode", searchModel.getCheckedyosimekacode());        //割戻区分と用紙単価の取得        Yk0120mtDto yk0120mtDto = dao.queryForObject(Yk0120mtDto.class, "QTB_YK0120MTS004", condition);        //割戻区分        String wmdskbn = yk0120mtDto.getWmdskbn();        //用紙単価        Integer yositank = yk0120mtDto.getYositank();        //代理店コード取得        String yosidrtncode = dao.queryForObject(String.class,                "QTB_YK0140MTS004", condition);        //決算年月日        condition.put("ksanyymm", searchModel.getKsanyymm());        //セッションのログイン社コード        condition.put("shacode", searchModel.getCompanyCode());        //セッションのユーザーID        condition.put("lastupdtuserid", searchModel.getUserId());        for (StockingSerialNumberMatchingDetailDownDto dto : searchModel.getDownDataList()) {            //DB更新を行う            //在庫管理DBの対象データの更新を行う。            //仕入連数=画面明細部(下段).仕入連数            condition.put("sirernsu", dto.getSirernsu());            dao.update("QTB_YK0300TRU002", condition);            //「支払DB」テーブルと代理店別支払DBテーブル更新を行う。            //消費税金額を初期化            BigDecimal excisetax = BigDecimal.valueOf(0);            //購入金額を初期化            BigDecimal konykngk = BigDecimal.valueOf(0);            //割戻区分            condition.put("wmdskbn", wmdskbn);            //代理店コード(代理店別支払DBテーブル更新用)            condition.put("yosidrtnccide", yosidrtncode);            //用紙単価 =引数.用紙単価            condition.put("yositank", yositank);            //白損返品連数 =画面明細部(下段).白損返品連数            condition.put("hksnhnpnrnsu", dto.getHksnhnpnrnsu());            //購入連数=画面明細部(下段).実購入連数            condition.put("konyrnsu", dto.getRealbuyserialnumber());            //購入金額=購入連数*用紙単価            konykngk = dto.getRealbuyserialnumber().multiply(new BigDecimal(yositank.toString()));            condition.put("konykngk", konykngk);            //消費税金額の取得            excisetax = this.getExcisetax(konykngk);            //購入消費税額=引数.購入消費税額            condition.put("yosikonyszeigaku", excisetax);            //税込金額 =購入金額+購入消費税額            condition.put("yosizikmkonykngk", konykngk.add(excisetax));            //DBに支払データ存在するかどうか 判断            Long selectcount_yk0520tr = dao.queryForObject(Long.class, "QTB_YK0520TRS006", condition);            if (selectcount_yk0520tr > 0) {                //「支払DB」テーブルUpdate                dao.update("QTB_YK0520TRU002", condition);                //代理店別支払DB削除                dao.delete("QTB_YK0310TRD001", condition);                //「代理店別支払DB」テーブルInsert                dao.insert("QTB_YK0310TRI002", condition);            } else {                //「支払DB」テーブルInsert                dao.insert("QTB_YK0520TRI002", condition);                //「代理店別支払DB」テーブルInsert                dao.insert("QTB_YK0310TRI002", condition);            }        }        return RESULT_SUCCESS;    }    /**     * 「仕入連数照合(本社購買部門)」 在庫管理表出力ボタン処理。     *     * @param searchModel 画面属性     * @return String アクション戻り値     * @throws BUException エラーException     */    public String printExecute(StockingSerialNumberMatchingModel model) throws BUException {        logger.writeStartLog("在庫管理表出力処理開始");        // 保存先フォルダの読み込み        XMLLoader xmlLoader = new XMLLoader();        String path = xmlLoader.getValue(TEMP_PATH);        // ファイル名        String fileName = CommonSpool.getFileName(DataFileType.EXCEL, YKConst.FORM_ID_BUYK0402);        // ファイルパス        String filePath = FileUtil.concatFilePathName(path, fileName);        // Excel作成        WorkbookWrapper workbook = new WorkbookWrapper();        workbook.createWorkbook();        // ヘッダーの出力        workbook = this.writeHeader(workbook, model);        //明細 データ行の出力        workbook = this.writeData(workbook, model);        // Excelの保存        workbook.save(filePath);        // ダウンロード処理を実行        FileUtil.filedownload(path, fileName);        FileUtil.deleteFile(filePath, FileUtil.getLocalOsName());        logger.writeEndLog("在庫管理表出力処理終了");        return RESULT_SUCCESS;    }    /**     * 明細部 出力Excelファイル内容書き出し処理。     *     * @param workbook WorkbookWrapper     * @param model HmShoBunruiModel     * @return WorkbookWrapper 設定後のExcelオブジェクト     * @throws BUException エラーException     */    private WorkbookWrapper writeData(WorkbookWrapper workbook, StockingSerialNumberMatchingModel searchModel)            throws BUException {        //検索パラメータ        HashMap<String, String> condition = new HashMap<String, String>();        //決算年月日        condition.put("ksanyymm", searchModel.getKsanyymm());        //用紙種別コード        condition.put("yosisybtcode", searchModel.getYosisybtcode());        //セッションのログイン社コード        condition.put("shacode", searchModel.getCompanyCode());        // 明細部データを取得する        List<StockManageTablePrintDto> dbDataList =                dao.queryForList(StockManageTablePrintDto.class, "QTB_YK0300TRS005", condition);        // ワークシート取得        WorksheetWrapper worksheet = new WorksheetWrapper();        worksheet.getWorksheets(workbook);        worksheet.getWorksheet(0);        // セルを操作するための準備        CellsWrapper cells = new CellsWrapper();        cells.getCells(worksheet);        // データ出力        int row = 4;        for (StockManageTablePrintDto dto : dbDataList) {            int colum = 0;            // 仕入連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getSirernsu().toString()));            colum++;            // 工場受入連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getKojoukirrnsutotal().toString()));            colum++;            // 前月工場残            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getPremouthfactoryremaining().toString()));            colum++;            // 工場受入連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getKojoukirrnsutotal().toString()));            colum++;            // 工場払出連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getKojohdsirnsutotal().toString()));            colum++;            // 工場在庫連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getKojozikornsu().toString()));            colum++;            // 白損返品連数            cells.setCellValue(row, colum, searchModel.formatNumber(dto.getHksnhnpnrnsu().toString()));            colum++;            row++;        }        // データを戻す        return workbook;    }    /**     * 出力Excelファイルヘッダー書き出し処理。     *     * @param workbook WorkbookWrapper     * @return WorkbookWrapper 設定後のExcelオブジェクト     * @throws BUException エラーException     */    private WorkbookWrapper writeHeader(WorkbookWrapper workbook, StockingSerialNumberMatchingModel searchModel)            throws BUException {        // ワークシート作成        WorksheetWrapper worksheet = new WorksheetWrapper();        worksheet.getWorksheets(workbook);        worksheet.getWorksheet(0);        // セルを操作するための準備        CellsWrapper cells = new CellsWrapper();        cells.getCells(worksheet);        // スタイル作成処理        StyleWrapper headerStyle = new StyleWrapper();        headerStyle.createStyle(workbook);        // 表題行の出力        cells.setCellValue(0, 0, "【在庫管理表】");        // 罫線        BorderWrapper border = new BorderWrapper();        border.setBorderType(headerStyle, BorderTypeDef.TOP_BORDER, ColorDef.BLACK, CellBorderTypeDef.THIN);        border.setBorderType(headerStyle, BorderTypeDef.RIGHT_BORDER, ColorDef.BLACK, CellBorderTypeDef.THIN);        border.setBorderType(headerStyle, BorderTypeDef.BOTTOM_BORDER, ColorDef.BLACK, CellBorderTypeDef.THIN);        border.setBorderType(headerStyle, BorderTypeDef.LEFT_BORDER, ColorDef.BLACK, CellBorderTypeDef.THIN);        // 背景色設定        headerStyle.setPattern(BackgroundTypeDef.SOLID);        headerStyle.setForegroundColor(ColorDef.YELLOW_GREEN);        // ヘッダ行の出力        List<Double> width = Arrays.asList(WIDTH10, WIDTH25, WIDTH25, WIDTH25, WIDTH25, WIDTH25, WIDTH25);        List<String> header = Arrays.asList("社", "年月", " 帳票出力日付、時刻 ", "種別");        for (int colum = 0; colum < header.size(); colum++) {            cells.setColumWidth(colum, width.get(colum));            cells.setCellValue(1, colum, header.get(colum));            headerStyle.setStyle(cells, 1, colum);        }        //システム日時を取得        Calendar calendar = java.util.Calendar.getInstance();        SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");        // ヘッダ行の値出力        List<String> headerData = Arrays.asList(searchModel.getCompanyCode(), searchModel.getKsanyymm(),                format.format(calendar.getTime()),                searchModel.getYosisybtname());        for (int colum = 0; colum < headerData.size(); colum++) {            cells.setColumWidth(colum, width.get(colum));            cells.setCellValue(2, colum, headerData.get(colum));            headerStyle.setStyle(cells, 2, colum);        }        // 明細ヘッダ行の出力        List<String> detailPartheader = Arrays.asList("仕入", "工場受入", " 前月工場残 ", "工場受入",                "払出連数", "工場在庫", "白損残");        for (int colum = 0; colum < detailPartheader.size(); colum++) {            cells.setCellValue(3, colum, detailPartheader.get(colum));            headerStyle.setStyle(cells, 3, colum);        }        // データを戻す        return workbook;    }    /**    * 決算年月項目設定。    *    * @param  searchModel  「仕入連数照合(本社購買部門)」画面属性    * @throws BUException エラーException    */    private void getKsanyymm(StockingSerialNumberMatchingModel searchModel) throws BUException {        logger.writeTraceLog("決算年月項目設定_開始");        if (searchModel.getActionFlg() == null ||                searchModel.getActionFlg().equals(ACTIONFLAG_ONE)) {            Calendar cal = Calendar.getInstance();            int y = cal.get(Calendar.YEAR);            String ksanyymm = dao.queryForObject(String.class,                    "QTB_YK0010MTS007", String.valueOf(y));            //決算年月設定            searchModel.setKsanyymm(ksanyymm);        }        logger.writeTraceLog("決算年月項目設定_終了");    }    /**両日の差     * @param startDate     * @param nowDate     * @return     */    private boolean getLongDiffDays(String startDate) {        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMM");        //システム時間を取得        Calendar cal = Calendar.getInstance();        String now = formatter.format(cal.getTime());        return Integer.parseInt(startDate) - Integer.parseInt(now) > 0;    }    /**     * 画面チェック処理。     *     * @param  searchModel 登録画面属性     * @throws ApplicationException エラーException     * @throws BUException エラーException     */    public void searchValidate(StockingSerialNumberMatchingModel searchModel) throws ApplicationException, BUException {        // ログを出力        logger.writeStartLog("画面チェック処理_開始");        // 本社未選択はエラー        if (CheckUtil.isNullOrEmpty(searchModel.getCompanyCode())) {            // 画面各プロダウン再設定            getKsanyymm(searchModel);            throw new ApplicationException(MessageConst.MSG_ID_E_NO_INPUT, new String[] { "本社コード" },                    new String[] { "sha_code" });        }        // ログを出力        logger.writeEndLog("画面チェック処理_開始");    }    /**     * 購入消費税を算出処理。     *     * @param  inputBaseprice 金額     * @throws BUException エラーException     */    private BigDecimal getExcisetax(BigDecimal inputBaseprice) throws BUException {        //共通機能にて消費税の取得        ConsumptionTax consumptionTax = new ConsumptionTax();        // 消費税計算(String 設定課税区分, String 基準日, String 摘要コード, BigDecimal 基準料金)        consumptionTax = ConsumptionTaxFunc.getConsumptionTax("3", "", "", inputBaseprice);        return consumptionTax.getExcisetax();    }}


<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="jp.co.asahi_np.biz.bus.online.yk.map.YK0300TR"><!--***********************************************************************--><!--*"      共通SQL IDブロック                                           "*--><!--***********************************************************************--><!-- 在庫管理DB汎用SQL --><sql id="SELECT_TB_YK0300TR_ALL"> select SHA_CODE,KONYYYMM,JUNNO,YOSIKBN_CODE,YOSIMEKACODE,YOSISYBTCODE,SIRERNSU,HKSNHNPNRNSU,KOJOUKIRRNSU,KOJOHDSIRNSU,KOJOZIKORNSU,MKRIHKSNKRKSRNSU,CRATUSERID,to_char(CRATTIME, 'yyyy/mm/dd hh24:mi:ss.ff3') as crattime,LASTUPDTUSERID,to_char(LASTUPDTTIME, 'yyyy/mm/dd hh24:mi:ss.ff3') as lastupdttimefromTB_YK0300TR</sql><sql id="WHERE_TB_YK0300TR_WITH_KEY"> where    SHA_CODE= #{sha_code,jdbcType=CHAR}and KONYYYMM                 = #{konyyymm                 ,jdbcType=CHAR}and JUNNO= #{junno,jdbcType=CHAR}and YOSIKBN_CODE= #{yosikbn_code,jdbcType=CHAR}and YOSIMEKACODE= #{yosimekacode,jdbcType=VARCHAR}and YOSISYBTCODE= #{yosisybtcode,jdbcType=VARCHAR}</sql><!--***********************************************************************--><!--*"      Insertブロック 採番ID:QTB_YK0300TRI001~                     "*--><!--***********************************************************************--><!-- 在庫管理DB挿入SQL --><insert id="QTB_YK0300TRI000" parameterType ="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"> insert into TB_YK0300TR( SHA_CODE,KONYYYMM,JUNNO,YOSIKBN_CODE,YOSIMEKACODE,YOSISYBTCODE,SIRERNSU,HKSNHNPNRNSU,KOJOUKIRRNSU,KOJOHDSIRNSU,KOJOZIKORNSU,MKRIHKSNKRKSRNSU,CRATUSERID,CRATTIME,LASTUPDTUSERID,LASTUPDTTIME ) values ( #{sha_code,jdbcType=CHAR},#{konyyymm                 ,jdbcType=CHAR},#{junno,jdbcType=CHAR},#{yosikbn_code,jdbcType=CHAR},#{yosimekacode,jdbcType=VARCHAR},#{yosisybtcode,jdbcType=VARCHAR},#{sirernsu        ,jdbcType=NUMERIC},#{hksnhnpnrnsu,jdbcType=NUMERIC},#{kojoukirrnsu    ,jdbcType=NUMERIC},#{kojohdsirnsu    ,jdbcType=NUMERIC},#{kojozikornsu    ,jdbcType=NUMERIC},#{mkrihksnkrksrnsu,jdbcType=NUMERIC},#{cratuserid,jdbcType=CHAR},SYSTIMESTAMP(3),#{lastupdtuserid,jdbcType=CHAR},SYSTIMESTAMP(3) )</insert><!-- 在庫管理DB挿入SQL --><insert id="QTB_YK0300TRI001" parameterType ="hashmap"> insert into TB_YK0300TR( SHA_CODE,KONYYYMM,JUNNO,YOSIKBN_CODE,YOSIMEKACODE,YOSISYBTCODE,SIRERNSU,HKSNHNPNRNSU,KOJOUKIRRNSU,KOJOHDSIRNSU,KOJOZIKORNSU,MKRIHKSNKRKSRNSU,CRATUSERID,CRATTIME,LASTUPDTUSERID,LASTUPDTTIME ) values ( #{shacode,jdbcType=CHAR},#{ksanyymm                 ,jdbcType=CHAR},'3',#{yosikbncode,jdbcType=CHAR},#{yosimekacode,jdbcType=VARCHAR},#{yosisybtcode,jdbcType=VARCHAR},0,#{hksnhnpnrnsu,jdbcType=NUMERIC},0,0,0,#{mkrihksnkrksrnsu,jdbcType=NUMERIC},#{lastupdtuserid,jdbcType=CHAR},SYSTIMESTAMP(3),#{lastupdtuserid,jdbcType=CHAR},SYSTIMESTAMP(3) )</insert><!--***********************************************************************--><!--*"      Deleteブロック 採番ID:QTB_YK0300TRD001~                  "*--><!--***********************************************************************--><!-- 在庫管理DB削除SQL --><delete id="QTB_YK0300TRD000" parameterType="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"> delete fromTB_YK0300TR<include refid="WHERE_TB_YK0300TR_WITH_KEY" /></delete><!--***********************************************************************--><!--*"      Updateブロック 採番ID:QTB_YK0300TRU001~                     "*--><!--***********************************************************************--><!-- 在庫管理DB更新SQL --><update id="QTB_YK0300TRU000" parameterType="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"> updateTB_YK0300TR set SHA_CODE= #{sha_code,jdbcType=CHAR},KONYYYMM                 = #{konyyymm                 ,jdbcType=CHAR},JUNNO= #{junno,jdbcType=CHAR},YOSIKBN_CODE= #{yosikbn_code,jdbcType=CHAR},YOSIMEKACODE= #{yosimekacode,jdbcType=VARCHAR},YOSISYBTCODE= #{yosisybtcode,jdbcType=VARCHAR},SIRERNSU        = #{sirernsu        ,jdbcType=NUMERIC},HKSNHNPNRNSU= #{hksnhnpnrnsu,jdbcType=NUMERIC},KOJOUKIRRNSU    = #{kojoukirrnsu    ,jdbcType=NUMERIC},KOJOHDSIRNSU    = #{kojohdsirnsu    ,jdbcType=NUMERIC},KOJOZIKORNSU    = #{kojozikornsu    ,jdbcType=NUMERIC},MKRIHKSNKRKSRNSU= #{mkrihksnkrksrnsu,jdbcType=NUMERIC},LASTUPDTUSERID= #{lastupdtuserid,jdbcType=CHAR},LASTUPDTTIME= SYSTIMESTAMP(3)<include refid="WHERE_TB_YK0300TR_WITH_KEY" /></update><!-- 在庫管理DB更新SQL --><update id="QTB_YK0300TRU001" parameterType="hashmap"> updateTB_YK0300TR setHKSNHNPNRNSU = #{hksnhnpnrnsu ,jdbcType=NUMERIC},MKRIHKSNKRKSRNSU= #{mkrihksnkrksrnsu         ,jdbcType=NUMERIC},LASTUPDTUSERID= #{lastupdtuserid,jdbcType=CHAR},LASTUPDTTIME= SYSTIMESTAMP(3)where JUNNO = '3'  <if test="shacode !=null and shacode != ''">    and SHA_CODE = #{shacode}    </if><if test="ksanyymm !=null and ksanyymm != ''">    and KONYYYMM = #{ksanyymm}    </if>    <if test="yosikbncode !=null and yosikbncode != ''">    and YOSIKBN_CODE = #{yosikbncode}    </if>    <if test="yosimekacode !=null and yosimekacode != ''">    and YOSIMEKACODE = #{yosimekacode}    </if>    <if test="yosisybtcode !=null and yosisybtcode != ''">    and YOSISYBTCODE = #{yosisybtcode}    </if></update><!-- BUYK0402_仕入連数照合(本社購買部門)在庫管理DB更新SQL --><update id="QTB_YK0300TRU002" parameterType="java.util.HashMap"> updateTB_YK0300TR setSIRERNSU  = #{sirernsu,jdbcType=NUMERIC},LASTUPDTUSERID= #{lastupdtuserid,jdbcType=CHAR},LASTUPDTTIME= SYSTIMESTAMP(3)where    JUNNO = '3'and SHA_CODE = #{shacode,jdbcType=CHAR}and KONYYYMM = #{ksanyymm,jdbcType=CHAR}and YOSIMEKACODE = #{yosimekacode,jdbcType=VARCHAR}and YOSISYBTCODE = #{yosisybtcode,jdbcType=VARCHAR}and  YOSIKBN_CODE=#{yosikbn_code,jdbcType=CHAR}</update><!--***********************************************************************--><!--*"      Selectブロック 採番ID:QTB_YK0300TRS001~                     "*--><!--***********************************************************************--><!-- 在庫管理DB全件選択SQL --><select id="QTB_YK0300TRS000" resultType="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"><include refid="SELECT_TB_YK0300TR_ALL" /></select><!-- 在庫管理DB一件選択SQL --><select id="QTB_YK0300TRS001" parameterType="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"                              resultType="jp.co.asahi_np.biz.bus.online.yk.dto.Yk0300trDto"><include refid="SELECT_TB_YK0300TR_ALL" /><include refid="WHERE_TB_YK0300TR_WITH_KEY" /></select><!-- 在庫管理DB件数SQL --><select id="QTB_YK0300TRS002" parameterType="hashmap"  resultType="java.lang.Long">selectcount(A.SHA_CODE)fromTB_YK0300TR Awhere A.JUNNO = '3'  <if test="shacode !=null and shacode != ''">    and A.SHA_CODE = #{shacode}    </if><if test="ksanyymm !=null and ksanyymm != ''">    and A.KONYYYMM = #{ksanyymm}    </if>    <if test="yosikbncode !=null and yosikbncode != ''">    and A.YOSIKBN_CODE = #{yosikbncode}    </if>    <if test="yosimekacode !=null and yosimekacode != ''">    and A.YOSIMEKACODE = #{yosimekacode}    </if>    <if test="yosisybtcode !=null and yosisybtcode != ''">    and A.YOSISYBTCODE = #{yosisybtcode}    </if></select><!-- BUYK0402_仕入連数照合(本社購買部門)実行ボタン処理SQL --><select id="QTB_YK0300TRS003" parameterType="java.util.HashMap" resultType="jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailUpDto">selectdistinctA.YOSIMEKACODE as yosimekacode,M1.YOSIMEKANAME as yosimekaname,sum(A.SIRERNSU) as sirernsutotalfromTB_YK0300TR A,TB_YK0090MT  M1whereA.SHA_CODE = #{shacode,jdbcType=CHAR}ANDA.KONYYYMM= #{ksanyymm ,jdbcType=CHAR}ANDA.YOSISYBTCODE = #{yosisybtcode,jdbcType=VARCHAR}ANDA.YOSIMEKACODE =  M1.YOSIMEKACODEANDA.JUNNO = '3'group byA.YOSIMEKACODE,M1.YOSIMEKANAMEorder byA.YOSIMEKACODE</select><!-- BUYK0402_仕入連数照合(本社購買部門)選択ボタン処理SQL --><select id="QTB_YK0300TRS004" parameterType="java.util.HashMap"  resultType="jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailDownDto">selectA.YOSISYBTCODE as yosisybtcode,M1.YOSISYBTRYAKNAME as yosisybtryakname,sum(A.KOJOUKIRRNSU) as kojoukirrnsutotal,    decode(A.JUNNO, '3', A.SIRERNSU,'') as sirernsu ,    decode(A.JUNNO, '3', A.HKSNHNPNRNSU,'') as hksnhnpnrnsu ,B.NYUKPLANRNSU   as deliveryserialnumber,A.SIRERNSU-A.HKSNHNPNRNSU as realbuyserialnumberfromTB_YK0300TR A,(select      sum(NYUKPLANRNSU ) as NYUKPLANRNSU fromTB_YK0260TRwhereSHA_CODE = #{shacode,jdbcType=CHAR} ANDsubstr(KONYPLANYMD,1,6) =  #{ksanyymm ,jdbcType=CHAR} ANDDUMMYKUBN =  '0' ANDYOSISYBTCODE =#{yosisybtcode,jdbcType=VARCHAR} AND       YOSIMEKACODE =#{checkedyosimekacode,jdbcType=VARCHAR})B,TB_YK0030MT  M1whereA.SHA_CODE = #{shacode,jdbcType=CHAR} ANDA.KONYYYMM =   #{ksanyymm ,jdbcType=CHAR} ANDA.YOSISYBTCODE =#{yosisybtcode,jdbcType=VARCHAR}   ANDA.YOSISYBTCODE = M1.YOSISYBTCODE AND    A.MKRIHKSNKRKSRNSU > 0 group byA.YOSISYBTCODE,M1.YOSISYBTRYAKNAME,A.SIRERNSU,A.HKSNHNPNRNSU,A.JUNNO,B.NYUKPLANRNSUorder byA.YOSISYBTCODE</select><!-- BUYK0402_仕入連数照合(本社購買部門)在庫管理表出力ボタン処理SQL --><select id="QTB_YK0300TRS005" parameterType="java.util.HashMap"  resultType="jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockManageTablePrintDto">selectA.SHA_CODE as sha_code,A.KONYYYMM  as konyyymm ,A.YOSISYBTCODE as yosisybtcode,M1.YOSISYBTNAME as yosisybtname,A.SIRERNSU  as sirernsu,sum(A.KOJOUKIRRNSU) as kojoukirrnsutotal ,B.KOJOZIKORNSU   as premouthfactoryremaining,sum(A.KOJOHDSIRNSU ) as kojohdsirnsutotal , decode(A.JUNNO, '3', A.SIRERNSU,'' ) as sirernsu ,     decode(A.JUNNO, '3', A.HKSNHNPNRNSU ,'') as hksnhnpnrnsufrom   TB_YK0300TR A left outer join TB_YK0300TR B          on A.SHA_CODE = B.SHA_CODE          and          decode(substr(A.KONYYYMM-1,5,2),                              '00',                              substr(A.KONYYYMM,1,4)-1||'12',                              A.KONYYYMM-1)=B.KONYYYMM          and A.YOSISYBTCODE = B.YOSISYBTCODE          and B.JUNNO ='3' left outer join TB_YK0030MT M1          on A.YOSISYBTCODE = M1.YOSISYBTCODEwhereA.SHA_CODE =#{shacode,jdbcType=CHAR}   ANDA.KONYYYMM =  #{ksanyymm ,jdbcType=CHAR}  ANDA.YOSISYBTCODE =#{yosisybtcode,jdbcType=VARCHAR} group by A.SHA_CODE, A.KONYYYMM,A.YOSISYBTCODE,M1.YOSISYBTNAME ,A.SIRERNSU,B.KOJOZIKORNSU,A.JUNNO,A.HKSNHNPNRNSU</select></mapper>


Model
package jp.co.asahi_np.biz.bus.online.yk.buyk0402.model;import java.math.BigDecimal;import java.text.DecimalFormat;import java.util.List;import jp.co.asahi_np.biz.bus.common.model.CommonModel;import jp.co.asahi_np.biz.bus.common.utility.CheckUtil;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockManageTablePrintDto;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailDownDto;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.dto.StockingSerialNumberMatchingDetailUpDto;/** *  「仕入連数照合(本社購買部門)」検索用Modelクラス。 */public class StockingSerialNumberMatchingModel extends CommonModel {    /** 処理フラグ。 */    private String actionFlg;    /**決算年月。*/    private String ksanyymm;    /** 検索件数。**/    private long updetailCount;    /** 検索件数。**/    private long downDetailCount;    /** 用紙種別コード。**/    private String yosisybtcode;    /** 用紙種別名。**/    private String yosisybtname;    /** 用紙区分コード。**/    private String yosikbn_code;    /** 用紙種別略称名。**/    private String yosisybtryakname;    /** 明細部(上段)リスト。**/    private List<StockingSerialNumberMatchingDetailUpDto> upDataList;    private String checkedyosimekacode;    /** 明細部(下段)リスト。**/    private List<StockingSerialNumberMatchingDetailDownDto> downDataList;    /** 在庫管理表出力リスト。**/    private List<StockManageTablePrintDto> printDataList;    /**明細部(下段)リストに仕入連数合計*/    private BigDecimal totalsirernsu;    /**明細部(下段)リストに白損返品連数合計*/    private BigDecimal totalhksnhnpnrnsu;    /**明細部(下段)リストに工場受入連数合計*/    private BigDecimal totalkojoukirrnsutotal;    /**明細部(下段)リストに実購入連数合計*/    private BigDecimal totalrealbuyserialnumber;    /**明細部(下段)リストにデリバリー連数合計*/    private BigDecimal totaldeliveryserialnumber;    /**     * フォーマットする。     * @param s フォーマット前の項目     * @return s フォーマット後の値     */    public String formatNumber(String s) {        if (CheckUtil.isNullOrEmpty(s)) {            return s;        }        s = s.replaceAll(",", "").trim();        Double ret = Double.parseDouble(s);        DecimalFormat fmt = new DecimalFormat("####,###,###,##0.00");        return fmt.format(ret);    }    /**     * @return actionFlg     */    public String getActionFlg() {        return actionFlg;    }    /**     * @param actionFlg セットする actionFlg     */    public void setActionFlg(String actionFlg) {        this.actionFlg = actionFlg;    }    /**     * @return ksanyymm     */    public String getKsanyymm() {        return ksanyymm;    }    /**     * @param ksanyymm セットする ksanyymm     */    public void setKsanyymm(String ksanyymm) {        this.ksanyymm = ksanyymm;    }    /**     * @return updetailCount     */    public long getUpdetailCount() {        return updetailCount;    }    /**     * @param updetailCount セットする updetailCount     */    public void setUpdetailCount(long updetailCount) {        this.updetailCount = updetailCount;    }    /**     * @return downDetailCount     */    public long getDownDetailCount() {        return downDetailCount;    }    /**     * @param downDetailCount セットする downDetailCount     */    public void setDownDetailCount(long downDetailCount) {        this.downDetailCount = downDetailCount;    }    /**     * @return yosisybtcode     */    public String getYosisybtcode() {        return yosisybtcode;    }    /**     * @param yosisybtcode セットする yosisybtcode     */    public void setYosisybtcode(String yosisybtcode) {        this.yosisybtcode = yosisybtcode;    }    /**     * @return yosisybtname     */    public String getYosisybtname() {        return yosisybtname;    }    /**     * @param yosisybtname セットする yosisybtname     */    public void setYosisybtname(String yosisybtname) {        this.yosisybtname = yosisybtname;    }    /**     * @return upDataList     */    public List<StockingSerialNumberMatchingDetailUpDto> getUpDataList() {        return upDataList;    }    /**     * @param upDataList セットする upDataList     */    public void setUpDataList(List<StockingSerialNumberMatchingDetailUpDto> upDataList) {        this.upDataList = upDataList;    }    /**     * @return checkedyosimekacode     */    public String getCheckedyosimekacode() {        return checkedyosimekacode;    }    /**     * @param checkedyosimekacode セットする checkedyosimekacode     */    public void setCheckedyosimekacode(String checkedyosimekacode) {        this.checkedyosimekacode = checkedyosimekacode;    }    /**     * @return downDataList     */    public List<StockingSerialNumberMatchingDetailDownDto> getDownDataList() {        return downDataList;    }    /**     * @param downDataList セットする downDataList     */    public void setDownDataList(List<StockingSerialNumberMatchingDetailDownDto> downDataList) {        this.downDataList = downDataList;    }    /**     * @return printDataList     */    public List<StockManageTablePrintDto> getPrintDataList() {        return printDataList;    }    /**     * @param printDataList セットする printDataList     */    public void setPrintDataList(List<StockManageTablePrintDto> printDataList) {        this.printDataList = printDataList;    }    /**     * @return totalsirernsu     */    public BigDecimal getTotalsirernsu() {        return totalsirernsu;    }    /**     * @param totalsirernsu セットする totalsirernsu     */    public void setTotalsirernsu(BigDecimal totalsirernsu) {        this.totalsirernsu = totalsirernsu;    }    /**     * @return totalhksnhnpnrnsu     */    public BigDecimal getTotalhksnhnpnrnsu() {        return totalhksnhnpnrnsu;    }    /**     * @param totalhksnhnpnrnsu セットする totalhksnhnpnrnsu     */    public void setTotalhksnhnpnrnsu(BigDecimal totalhksnhnpnrnsu) {        this.totalhksnhnpnrnsu = totalhksnhnpnrnsu;    }    /**     * @return totalkojoukirrnsutotal     */    public BigDecimal getTotalkojoukirrnsutotal() {        return totalkojoukirrnsutotal;    }    /**     * @param totalkojoukirrnsutotal セットする totalkojoukirrnsutotal     */    public void setTotalkojoukirrnsutotal(BigDecimal totalkojoukirrnsutotal) {        this.totalkojoukirrnsutotal = totalkojoukirrnsutotal;    }    /**     * @return totalrealbuyserialnumber     */    public BigDecimal getTotalrealbuyserialnumber() {        return totalrealbuyserialnumber;    }    /**     * @param totalrealbuyserialnumber セットする totalrealbuyserialnumber     */    public void setTotalrealbuyserialnumber(BigDecimal totalrealbuyserialnumber) {        this.totalrealbuyserialnumber = totalrealbuyserialnumber;    }    /**     * @return totaldeliveryserialnumber     */    public BigDecimal getTotaldeliveryserialnumber() {        return totaldeliveryserialnumber;    }    /**     * @param totaldeliveryserialnumber セットする totaldeliveryserialnumber     */    public void setTotaldeliveryserialnumber(BigDecimal totaldeliveryserialnumber) {        this.totaldeliveryserialnumber = totaldeliveryserialnumber;    }    /**     * @return yosikbn_code     */    public String getYosikbn_code() {        return yosikbn_code;    }    /**     * @param yosikbn_code セットする yosikbn_code     */    public void setYosikbn_code(String yosikbn_code) {        this.yosikbn_code = yosikbn_code;    }    /**     * @return yosisybtryakname     */    public String getYosisybtryakname() {        return yosisybtryakname;    }    /**     * @param yosisybtryakname セットする yosisybtryakname     */    public void setYosisybtryakname(String yosisybtryakname) {        this.yosisybtryakname = yosisybtryakname;    }}

action
package jp.co.asahi_np.biz.bus.online.yk.buyk0402.action;import static jp.co.asahi_np.biz.bus.common.constant.ComConst.RESULT_INPUT;import static jp.co.asahi_np.biz.bus.common.constant.ComConst.RESULT_SUCCESS;import jp.co.asahi_np.biz.bus.common.action.YKAbstractAction;import jp.co.asahi_np.biz.bus.common.exception.BUException;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.model.StockingSerialNumberMatchingModel;import jp.co.asahi_np.biz.bus.online.yk.buyk0402.service.StockingSerialNumberMatchingService;import jp.co.asahi_np.biz.bus.online.yk.constant.YKConst;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import com.opensymphony.xwork2.ModelDriven;/** * Resultアノテーションの設定。 */@Results({        @Result(name = RESULT_SUCCESS, location = "BUYK04021D.jsp"),        @Result(name = RESULT_INPUT, location = "BUYK04021D.jsp")})/****「仕入連数照合(本社購買部門)」画面初期化処理用ACTIONクラス。**/@Action("/StockingSerialNumberMatchingInit")public class StockingSerialNumberMatchingInitAction extends YKAbstractAction        implements ModelDriven<StockingSerialNumberMatchingModel> {    /**     *actionFlagフラグ_初期処理。     */    private static final String ACTIONFLAG_ONE = "1";    /**     *Modelインスタンス。     */    private StockingSerialNumberMatchingModel searchModel = new StockingSerialNumberMatchingModel();    /**     *Serviceインスタンス。     */    private StockingSerialNumberMatchingService service;    /**     * @return searchModel     */    public StockingSerialNumberMatchingModel getModel() {        return searchModel;    }    /**     * @param searchModel 画面属性     */    public void setModel(StockingSerialNumberMatchingModel searchModel) {        this.searchModel = searchModel;    }    @Override    protected String doExecute() throws BUException {        // ログを出力        logger.writeStartLog("「 仕入連数照合(本社購買部門)」画面初期化処理_開始");        searchModel.setScreenId(YKConst.FORM_ID_BUYK0402);        searchModel.setTitle(YKConst.FORM_TITLE_BUYK0402);        // actionFlagの設定        searchModel.setActionFlg(ACTIONFLAG_ONE);        //画面初期化処理を行う        service = new StockingSerialNumberMatchingService();        String result = service.initExecute(searchModel);        // ログを出力        logger.writeEndLog("「 仕入連数照合(本社購買部門」一覧画面初期化処理_終了");        return result;    }}



pup画面のjsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="sj" uri="/struts-jquery-tags"%><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta http-equiv="x-ua-compatible" content="ie=7" /><%@ include file="/common/jsp/yk_head.jsp"%><script type='text/javascript'>function submitForm(action) {document.searchModelForm.action = action;formSubmit(action, document.searchModelForm);}/*actionを呼び出す*/function submitDataForm(action) {document.searchModelForm.action = action;formSubmit(action, document.searchModelForm);}function selectRecord(yosisybtcode,yosikbn_code, yosisybtname,yosisybtryakname) {window.dialogArguments.setYosisybt(yosisybtcode,yosikbn_code, yosisybtname,yosisybtryakname);window.close();}</script><title><s:property value="title" /></title></head><body onload="resizeResultDivHeight();setErrControls(document.searchModelForm, '<s:property value="errControls"/>');"><div style="height:34px;"><table cellspacing="0px" width="100%"><tr><td width="83">&nbsp;</td>                <td width="88"><s:property value="screenId" /></td>                <td width="564" align="center"><strong><s:property value="title" /></strong></td>                <td width="261">&nbsp;</td>             </tr>             <tr align="right" colspan="7"><a href="javascript:submitForm('/yk/PaperKindPopupInit')">1ステップ戻る</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="window.close();">呼出元画面へ</a></td>            </tr>           </table></div><div id="contents_popup" style="top:35px;">    <s:form id="searchModelForm" name="searchModelForm"  theme="simple">        <div style="width:820px;"><div><%@ include file="/common/jsp/message.jsp"%></div> <table ><strong>検索条件:</strong></td><td width="100" align="center"  id="yosiKbnCode" name="yosiKbnCode" value="yosiKbnCode" listKey="key" listValue="value" disabled="true"></s:select><s:hidden name="yosiKbnCode" /></s:if><s:else><s:select list="yosiKbnList" id="yosiKbnCode" name="yosiKbnCode" value="yosiKbnCode" listKey="key" listValue="value"></s:select></s:else></td>                        <td width="573"><!-- 一覧画面の場合、対象表示ボタン無効 --><s:if test="dataList != null && !dataList.isEmpty"><input type="button" id="search" value="対象表示" onclick="submitDataForm('/yk/PaperKindPopupSearch')" disabled="disabled"/></s:if><s:else><input type="button" id="search" value="対象表示" onclick="submitDataForm('/yk/PaperKindPopupSearch')" /></s:else></td><td width="8%">&nbsp;</td></tr>             </table>          </div><!--conditon-->          <%@ include file="/common/jsp/common_hidden_controls.jsp"%>          <s:if test="dataList != null && !dataList.isEmpty">          <div style="width:820px;">                   <tr width="7%" height="36"></th>                        <th  width="15%" height="36">種別コード</th>                        <th  width="15%" height="36">用紙区分コード</th>                        <th width="15%" height="36">種別略称名</th>                        <th width="15%" height="36">種別名</th>                    </tr>                </table>                <div id="buyk_searchList" style="min-width:720px;max-width:820px;border-width: 0px;height:335px;">                    <table id="search_result_table"  style="width:820px;">                        <s:iterator value="dataList" status="stat" var="detail">                        <tr <s:if test="%{#stat.index % 2 != 0}"> </s:if><s:else> </s:else>><td width="7%"  align="center" height="20"><input type="button" value="選択" id="select" onclick="javascript:selectRecord('<s:property value="#detail.yosisybtcode" />','<s:property value="#detail.yosikbn_code" />', '<s:property value="#detail.yosisybtname" />','<s:property value="#detail.yosisybtryakname" />')" /></td>                        <td width="15%" align="center"><s:property value="#detail.yosisybtcode" /></td>                        <td width="15%" align="center"><s:property value="#detail.yosikbn_code" /></td>                        <td width="15%" align="center"><s:property value="#detail.yosisybtryakname" /></td>                        <td width="15%" align="center"><s:property value="#detail.yosisybtname" /></td>                        </tr></s:iterator>                    </table>               </div>         </div>     </s:if></s:form></div></body></html>

热点排行