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"> </td> </tr> <tr><td width="35%"> </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 > </td> </tr> </table><p></p> <table cellspacing="0" cellpadding="0" style="width:1000px;"> <tr> <td width="70%" > </td> <td> <input type="button" value=" 行 " id="searchBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingSearch');"/> <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"> </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"> </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"> </td> <td ><input type="button" value=" " id="confirmBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingConfirm');"/> </td> <td width="50"><input type="button" value=" 登 " id="registerBtn" onclick="submitDataForm('/yk/StockingSerialNumberMatchingRegister');"/></td> <td width="100" > </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"> </td> <td width="88"><s:property value="screenId" /></td> <td width="564" align="center"><strong><s:property value="title" /></strong></td> <td width="261"> </td> </tr> <tr align="right" colspan="7"><a href="javascript:submitForm('/yk/PaperKindPopupInit')">1ステップる</a> <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%"> </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>