- 浏览: 42386 次
- 性别:
- 来自: 大连
-
文章分类
最新评论
public HskSisakuCalReferSearchDisRsSM findHskSisakuCalInfo(
HskSisakuCalReferSearchSM hskSisakuCalReferSearchSM)
throws AsdApplicationException {
CtrShskHeadDMParameter ctrShskHeadDMParameter = new CtrShskHeadDMParameter();
ctrShskHeadDMParameter.setHanbaiTenCd(hskSisakuCalReferSearchSM.getHanbaiTenCd());
ctrShskHeadDMParameter.setHonShaFlg(hskSisakuCalReferSearchSM.isHonShaFlg());
ctrShskHeadDMParameter.setSearchStYM(hskSisakuCalReferSearchSM.getSearchStYM());
ctrShskHeadDMParameter.setSearchStYMP(hskSisakuCalReferSearchSM.getSearchStYMP());
ctrShskHeadDMParameter.setJigCd(hskSisakuCalReferSearchSM.getJigCd());
ctrShskHeadDMParameter.setBushoCd(hskSisakuCalReferSearchSM.getBushoCd());
ctrShskHeadDMParameter.setChainCd(hskSisakuCalReferSearchSM.getChainCd());
ctrShskHeadDMParameter.setZenkokuSskType(hskSisakuCalReferSearchSM.isZenkokuSskType());
ctrShskHeadDMParameter.setAreaSskType(hskSisakuCalReferSearchSM.isAreaSskType());
ctrShskHeadDMParameter.setChainSskType(hskSisakuCalReferSearchSM.isChainSskType());
if(hskSisakuCalReferSearchSM.isZenkokuSskType()||hskSisakuCalReferSearchSM.isAreaSskType()||hskSisakuCalReferSearchSM.isChainSskType()){
ctrShskHeadDMParameter.setSskFlg(true);
}
HskSisakuCalReferSearchDisRsSM sm = new HskSisakuCalReferSearchDisRsSM();
List<CtrShskHeadDM> ctrShskHeadList = ctrShskHeadCustomDAO.selectHskSisakuCalByInpt(ctrShskHeadDMParameter);
if( ctrShskHeadList != null) {
// チャネルで、グループ化する。
Map<String, List<CtrShskHeadDM>> chanelGroup = new HashMap<String, List<CtrShskHeadDM>>();
for (CtrShskHeadDM ctrShskHeadDM : ctrShskHeadList) {
List<CtrShskHeadDM> chanelList = new ArrayList<CtrShskHeadDM>();
chanelList.add(ctrShskHeadDM);
if(ctrShskHeadDM.getCommFlg() != null && ctrShskHeadDM.getCommFlg().equals("1")){
chanelList = chanelGroup.put("全チャネル", chanelList);
} else {
chanelList = chanelGroup.put(ctrShskHeadDM.getChanlCd(), chanelList);
}
if (chanelList != null) {
chanelList.add(ctrShskHeadDM);
if(ctrShskHeadDM.getCommFlg() != null && ctrShskHeadDM.getCommFlg().equals("1")){
chanelGroup.put("全チャネル", chanelList);
} else {
chanelGroup.put(ctrShskHeadDM.getChanlCd(), chanelList);
}
}
}
// チャネルで、ソートする。
Map<String, List<CtrShskHeadDM>> chanelGroupSortedByChanlCdNm = new TreeMap<String, List<CtrShskHeadDM>>(chanelGroup);
Iterator<String> chanlCdNm = chanelGroupSortedByChanlCdNm.keySet().iterator();
//"全チャネル"を先に
List<String> list = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
while (chanlCdNm.hasNext()){
list.add(chanlCdNm.next());
}
for(String chNm:list){
if(chNm.equals("全チャネル")){
list2.add(0, chNm);
}else{
list2.add(chNm);
}
}
// チャネル処理
for (String chanlCd:list2) {
// チャネルInformation
HskSisakuCalReferSearchDisRsSM.CldSearchInfo cldSearchInfo = new HskSisakuCalReferSearchDisRsSM.CldSearchInfo();
// 対象ブランドで、グループ化する。
List<CtrShskHeadDM> chanelSortList = chanelGroupSortedByChanlCdNm.get(chanlCd);
Map<String, List<CtrShskHeadDM>> zenChannelGroup = new HashMap<String, List<CtrShskHeadDM>>();
if(chanlCd.equals("全チャネル")){
// 施策名称で、グループ化する。
for(CtrShskHeadDM zenChannelDm : chanelSortList){
List<CtrShskHeadDM> tempList = new ArrayList<CtrShskHeadDM>();
tempList.add(zenChannelDm);
tempList = zenChannelGroup.put(zenChannelDm.getShisakuMeisho(), tempList);
if(tempList != null){
boolean isNewBrand = false;
for(CtrShskHeadDM tempDm: tempList){
if(!zenChannelDm.getBrandCd().equals(tempDm.getBrandCd())){
isNewBrand = true;
}
}
if(isNewBrand){
tempList.add(zenChannelDm);
}
zenChannelGroup.put(zenChannelDm.getShisakuMeisho(), tempList);
}
}
Iterator<String> sskNm = zenChannelGroup.keySet().iterator();
chanelSortList = new ArrayList<CtrShskHeadDM>();
while(sskNm.hasNext()){
for(CtrShskHeadDM tempDm2:zenChannelGroup.get(sskNm.next())){
chanelSortList.add(tempDm2);
}
}
}
//channel名をset
if(chanelSortList!= null && chanelSortList.size()>0 ){
cldSearchInfo.setChannelName(chanelSortList.get(0).getChanlCdNm());
}
Map<String, List<CtrShskHeadDM>> brandGroup = new HashMap<String, List<CtrShskHeadDM>>();
for (CtrShskHeadDM ctrShskHeadDM : chanelSortList) {
List<CtrShskHeadDM> brandList = new ArrayList<CtrShskHeadDM>();
brandList.add(ctrShskHeadDM);
brandList = brandGroup.put(ctrShskHeadDM.getBrandCd(), brandList);
if (brandList != null) {
brandList.add(ctrShskHeadDM);
brandGroup.put(ctrShskHeadDM.getBrandCd(), brandList);
}
}
// 対象ブランドで、ソートする。
Map<String, List<CtrShskHeadDM>> brandGroupSortedByBrandName = new TreeMap<String, List<CtrShskHeadDM>>(brandGroup);
Iterator<String> brandCd = brandGroupSortedByBrandName.keySet().iterator();
// 対象ブランド処理
while (brandCd.hasNext()) {
HskSisakuCalReferSearchDisRsSM.BrandInfo brandInfo = new HskSisakuCalReferSearchDisRsSM.BrandInfo();
List<CtrShskHeadDM> brandSortList = brandGroupSortedByBrandName.get(brandCd.next());
//brand名をset
if(brandSortList!= null && brandSortList.size()>0 ){
brandInfo.setBrandName(brandSortList.get(0).getBrandCdNm());
}
long top = hskSisakuCalReferSearchSM.getBarTop() - hskSisakuCalReferSearchSM.getBorderHeight();
//施策Info処理
for (CtrShskHeadDM ctrShskHeadDM : brandSortList) {
HskSisakuCalReferSearchDisRsSM.SskInfo sskInfo = new HskSisakuCalReferSearchDisRsSM.SskInfo();
sskInfo.setSskName(ctrShskHeadDM.getShisakuMeisho());
sskInfo.setSskId(ctrShskHeadDM.getShisakuId());
//期間バーを処理する
String color ="";
if( ctrShskHeadDM.getSskSruiKbn() != null && ctrShskHeadDM.getSskSruiKbn().equals("1")){
if(ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("1")){
//mc-bar mc-bg-blue青
color = "mc-bar mc-bg-blue";
}else if (ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("0")){
//mc-bar mc-bg-water水
color = "mc-bar mc-bg-water";
}
}else if ( ctrShskHeadDM.getSskSruiKbn() != null && ctrShskHeadDM.getSskSruiKbn().equals("2") ){
if(ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("1")){
//mc-bar mc-bg-red赤
color = "mc-bar mc-bg-red";
}else if (ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("0")){
//mc-bar mc-bg-pinkピンク
color = "mc-bar mc-bg-pink";
}
}else if ( ctrShskHeadDM.getSskSruiKbn() != null && ctrShskHeadDM.getSskSruiKbn().equals("3") ){
if(ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("1")){
//mc-bar mc-bg-green緑
color = "mc-bar mc-bg-green";
}else if (ctrShskHeadDM.getKokaiFlg() != null && ctrShskHeadDM.getKokaiFlg().equals("0")){
//mc-bar mc-bg-yellowgreen黄緑
color = "mc-bar mc-bg-yellowgreen";
}
}
//顔色をset
sskInfo.setSskTBarColor(color);
//bar Style処理
int left = 0;
int width = 0;
int sttYMHead = Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYM());
int endYMHead = Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYMP());
int sttYMbar = Integer.parseInt(ctrShskHeadDM.getSttYMD().substring(0, 6));
int endYMbar = Integer.parseInt(ctrShskHeadDM.getEndYMD().substring(0, 6));
int sttDay = Integer.parseInt(ctrShskHeadDM.getSttYMD().substring(6, 8));
int endDay = Integer.parseInt(ctrShskHeadDM.getEndYMD().substring(6, 8));
Calendar cal = Calendar.getInstance();
cal.set(Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYMP().substring(0,4)), Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYMP().substring(4,6)), 01);
cal.add(Calendar.DATE, -1);
SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyyMMdd");
int endYMDHead = Integer.parseInt(df.format(cal.getTime()));
if( (Integer.parseInt(ctrShskHeadDM.getSttYMD()) <= Integer.parseInt(ctrShskHeadDM.getEndYMD())) && (Integer.parseInt(ctrShskHeadDM.getSttYMD()) < endYMDHead)){
if( (sttDay >= 1) && (sttDay<= 10)){
if( Integer.parseInt(ctrShskHeadDM.getSttYMD()) <= Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYM() + "01")){
left = 0;
} else {
left = (((Integer.parseInt(String.valueOf(sttYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(sttYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3;
}
}else if( (sttDay >= 11) && (sttDay <= 20)){
if(Integer.parseInt(ctrShskHeadDM.getSttYMD()) <= Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYM() + "01")){
left = 0;
} else {
left = (((Integer.parseInt(String.valueOf(sttYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(sttYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
+ 1;
}
}else if( sttDay >= 21){
if(Integer.parseInt(ctrShskHeadDM.getSttYMD()) <= Integer.parseInt(hskSisakuCalReferSearchSM.getSearchStYM() + "01")){
left = 0;
} else {
left = (((Integer.parseInt(String.valueOf(sttYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(sttYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
+ 2;
}
}
if(Integer.parseInt(ctrShskHeadDM.getEndYMD()) > endYMDHead){
width = (((Integer.parseInt(String.valueOf(endYMHead).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(endYMHead).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
- left + 3;
} else{
if( (endDay >= 1) && (endDay<= 10)){
width = (((Integer.parseInt(String.valueOf(endYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(endYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
- left + 1;
}else if( (endDay >= 11) && (endDay <= 20)){
width = (((Integer.parseInt(String.valueOf(endYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(endYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
- left + 2;
}else if( endDay >= 21){
width = (((Integer.parseInt(String.valueOf(endYMbar).substring(0,4)) - Integer.parseInt(String.valueOf(sttYMHead).substring(0,4))) * 12
+ Integer.parseInt(String.valueOf(endYMbar).substring(4,6)) - Integer.parseInt(String.valueOf(sttYMHead).substring(4,6)))) * 3
- left + 3;
}
}
}else{
left = 0;
width = 0;
}
if (left == 0 && width ==0){
continue;
}else{
top = top + hskSisakuCalReferSearchSM.getBorderHeight();
sskInfo.setSskTbarTop("top:" + top + "px;left:" + (left * hskSisakuCalReferSearchSM.getBorderWidth() + left) + "px;");
sskInfo.setSskTbarWidth("width:" + (width * hskSisakuCalReferSearchSM.getBorderWidth() + width) + "px;");
brandInfo.getSskInfoInList().add(sskInfo);
}
}
brandInfo.setBrandHeight("height:" + String.valueOf(brandInfo.getSskInfoInList().size() * hskSisakuCalReferSearchSM.getBorderHeight()) + "px;");
if(brandInfo.getSskInfoInList().size() > 0){
cldSearchInfo.getBrandInfoInList().add(brandInfo);
}
}
int cldHeight = 0;
for(HskSisakuCalReferSearchDisRsSM.BrandInfo brandInfo: cldSearchInfo.getBrandInfoInList()){
cldHeight = cldHeight + brandInfo.getSskInfoInList().size();
}
if(cldHeight ==0){
cldHeight = 1;
}
cldSearchInfo.setChannelHeight("height:" + (cldHeight * hskSisakuCalReferSearchSM.getBorderHeight() + (cldSearchInfo.getBrandInfoInList().size()-1) * hskSisakuCalReferSearchSM.getPadding() + cldSearchInfo.getBrandInfoInList().size()) + "px;");
if(cldSearchInfo.getBrandInfoInList().size()>0){
sm.getCldSearchInfoList().add(cldSearchInfo);
}
}
}
return sm;
}
发表评论
-
calendar
2012-11-19 20:01 528import java.util.Calendar;publi ... -
javaGroup
2012-12-10 10:06 689public List<IpnorsDetailK ... -
DMP文件导入
2012-09-25 15:48 466http://wenku.baidu.com/view/b6a ... -
spring 线程池
2012-09-25 14:31 624http://wenku.baidu.com/view/e45 ... -
ibats with spring
2012-09-25 12:38 590http://wenku.baidu.com/view/132 ... -
Spring自动代理机制
2012-09-25 11:28 1951Spring自动代理机制 (残梦 ...
相关推荐
文章目录测试数据1 sql执行顺序2 order by 和 group by什么时候会出现Using filesort — 理论3 order by 和 group by什么时候会出现Using filesort — 实践3.1 不会出现 Using filesort的情况 — 符合最佳左前缀法则...
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) by :接收映射、函数、标签或标签列表;用于确定聚合的组。 axis : 接收 0/1;用于表示沿...
| sorted指定字段排序 | sortBy自定义排序 | sortWith分组(groupBy)聚合(reduce/fold)聚合 | reduce折叠 | fold 遍历(foreach) 格式 foreach(f: (A) ⇒ Unit): Unit 说明 foreach API 说明 参数 f:(A)...
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) Group series using mapper (dict or key function, apply given function to group, ...
二、Distribute by 五、Cluster by 六、如何使用sort by实现全局排序
直接上例子。 import pandas as pd df = pd.DataFrame({'class':['a','a','b','b','a','a','b','c','c'],'score':[3,5,6,7,8,9,10,11,14...df.sort_values(['class','score'],ascending=[1,0],inplace=True) grouped =
优化sql的数据。 ...PI.NewLevel,PI.`Status`,PI.HighPrice,CPM.SalesPlaceID, psi.WIID,psi.stockNum,psi.OccupiedStockNum,psi.AirStockNum, ...where 1 = 1 GROUP BY PI.ID ORDER BY PI.ID DESC) as newtb LIMIT 0,25;
wpf devexpress gridcontrol简单的分组统计功能
如果在GROUP BY中过滤数据,在WHERE从句中指定条件比在HAVING从句中有更好的性能,因为在GROUP之前已经过滤掉数据,因此更少的行被汇总 3.UNION会对两个SELECT语句的结果集执行一个SORT,并消除重复行,成本会...
FROM table_reference [WHERE where_condition] [GROUP BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list] ] [LIMIT number] 其中,table_reference 是查询的输入,可以是一个普通...
r, --reverse: reverse sort order-R, --recurse: recurse into subdirectories-s, --sort=(field): field to sort by-S, --blocks: show number of file system blocks-t, --time: which timestamp to show for a ...
Lets say you have created some sort of simulation inside 3dsmax and want to import that into another tool. Ex cloth simulation. This will create a separate .obj file for every frame and also every ...
CREATE PROCEDURE SP_Pagination /* *************************************************************** ** 千万数量级分页存储过程 ** ******************************************...8.Group :Group语句,不带Group By
从HDFS中读文件,用groupby进行sort,然后写入Hbase中
SELECT 语句的基本语法是:SELECT <DISTINCT> object-item <, ...object-item> FROM from-list <WHERE sql-expression_r> <GROUP BY group-by-item <, ... group-by-item>> <HAVING sql-expression_r> <ORDER BY ...
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。...Order by 或 group by Distinct 操作 Union 或 intersect 或 minus Sort-merge joins analyze
3.2 Order /Sort By 28 4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建函数 36 6.1.6 数学...
3.2 Order /Sort By 28 4. Hive Join 29 5. HIVE参数设置 31 6. HIVE UDF 33 6.1 基本函数 33 6.1.1 关系操作符 33 6.1.2 代数操作符 34 6.1.3 逻辑操作符 35 6.1.4 复杂类型操作符 35 6.1.5 内建函数 36 6.1.6 数学...
Using Temporary 通常出现在 group by 语句中,当被 group by 的列不在索引上时。 例如,当我们执行以下查询时,MySQL 就需要使用临时表: SELECT * FROM user GROUP BY name; Using Join Buffer Using Join ...
ROW_NUMBER() OVER (PARTITION BY f_deptid ORDER BY f_salary DESC) AS f_order, f_deptname, f_employeename, f_salary FROM (SELECT a.f_employeeid, a.f_deptid, b.f_deptname, a.f_...