JEECG列表嵌套查询列表子查询+号功能

 控制器



@Controller
@RequestMapping("/planQueryController")
public class PlanQeruyController extends BaseController {
	private static final Logger logger = LoggerFactory.getLogger(PlanQeruyController.class);

	@Autowired
	private DbThekeyStationScanLogServiceI dbThekeyStationScanLogService;
	
	/**
	 * 系统参数列表页面
	 */
	@RequestMapping(params = "list")
	public ModelAndView workStart(HttpServletRequest request) {
		return new ModelAndView("com/jeecg/planquery/planQuery");
	}
		

	
	/**
	 * easyui AJAX请求数据
	 * @param clockin
	 * @param request
	 * @param response
	 * @param dataGrid
	 */

	@RequestMapping(params = "datagrid")
	public void datagrid(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
		List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
		boolean flag = false;
		StringBuffer sql = new StringBuffer("SELECT list_id as id,ufjhdh,ufscdd_hh,zch,cxh,a.chmc,a.hgzcxmc,t.cdefine6,t.lrrq FROM [xx_tm_scgl_cyc].[dbo].[t_c_zplck] t left join [xx_tm_scgl_cyc].[dbo].[t_ch_cp_dy] a on a.chbh = t.cxh where 1=1 ");
		//整码
		String zch = request.getParameter("zch");
		if(StringUtils.isNotBlank(zch)) {
			sql.append(" and t.zch = '" + zch + "'");
			flag = true;
		}
		//车码
		String cxh = request.getParameter("cxh");
		if(StringUtils.isNotBlank(cxh)) {
			sql.append(" and cxh = '" + cxh + "'");
			flag = true;
		}
		//日期
		String sj_begin = request.getParameter("sj_begin");
		if(StringUtils.isNotBlank(sj_begin)) {
			sql.append(" and t.lrrq >= '" + sj_begin + " 00:00:00'");
			flag = true;
		}
		String sj_end = request.getParameter("sj_end");
		if(StringUtils.isNotBlank(sj_end)) {
			sql.append(" and t.lrrq <= '" + sj_end + " 23:59:59'");
			flag = true;
		}
	
		//排序
		if(StringUtils.isNotBlank(dataGrid.getSort())) {
			if("cdefine6".equals(dataGrid.getSort())) {
				sql.append(" order by t.cdefine6 "+dataGrid.getOrder());
			}else {
				sql.append(" order by "+ dataGrid.getSort() +" "+dataGrid.getOrder());
			}
		}else {
			sql.append(" order by t.lrrq DESC");
		}
		//有条件 就查询
		if(flag) {
			data = DynamicDBUtil.findList("sql-server2008-tm",sql.toString());
		}
		//
		List<Map<String, Object>> showList = null;//要显示的数据
		int showLen = dataGrid.getRows();//动态得到前端需要显示多少条
		int totlePage = data.size()%showLen == 0 ? data.size()/showLen : data.size()/showLen + 1;
		if(dataGrid.getPage() == 1 ) {
			if(showLen > data.size()) {
				showLen = data.size();
			}
			showList = data.subList(0, showLen);
		}else {
			if(dataGrid.getPage() == totlePage) {
				showList = data.subList(((dataGrid.getPage()-1)*showLen),data.size());
			}else {
				showList = data.subList(((dataGrid.getPage()-1)*showLen),((dataGrid.getPage()-1)*showLen)+showLen);
			}
		}
		
		dataGrid.setResults(showList);
		dataGrid.setTotal(data.size());//总条数
		
	
		TagUtil.datagrid(response, dataGrid);
	}
	
	
	
	
	
	/**
	 * 关重件明细
	 * @param zch
	 * @param ufjhdh
	 * @param ufscdd_hh
	 * @param cxh
	 * @param request
	 * @param response
	 * @param dataGrid
	 */
	@RequestMapping(params = "planQueryLineDatagrid")
	public void planQueryLineDatagrid(String zch,String ufjhdh,String ufscdd_hh,String cxh,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
	
		String sql = "select mm_pickm.cpickmid, " +  //备料计划订单号 
				"mm_pickm.vsourcebillcode, " + 
				"mm_pickm.vsourcemorowcode " + 
				"from jpncdb1.mm_pickm mm_pickm " + 
				"where (mm_pickm.pk_org = '00014910000000009CH2' " + //XX公司00014910000000009CH2
				"AND mm_pickm.vsourcebillcode = '"+ufjhdh+"' " + //订单号 
				"AND mm_pickm.vsourcemorowcode = '"+ufscdd_hh+"') "+ //行号
				"and mm_pickm.dr = 0 ";
		List<Map<String, Object>> materialList = DynamicDBUtil.findList(ConstantUtil.NC_DB,sql);
		if(materialList.size()  > 0) {
			Map<String, Object> material = materialList.get(0);
			String cpickmid =  material.get("cpickmid").toString();//备料计划订单号
			
			//关重件
			List<Map<String, Object>> data = Lists.newArrayList();
			String sql2 = "select bd_material.code, " +  //零部件编号
					"bd_material.name," + //零部件名称 
					"mm_pickm_b.nunituseastnum ," + //装配数量
					"bd_defdoc.code as work_station_code," + //工位编码 
					"bd_defdoc.name as work_station_name, " + //工位名称
					"bd_material.def1 as is_thekey " + //是否是关重件  Y 是N 不是  空 不是
					"from jpncdb1.mm_pickm_b mm_pickm_b " + 
					"left join jpncdb1.bd_defdoc bd_defdoc on mm_pickm_b.vbdef1=bd_defdoc.pk_defdoc " + 
					"left join jpncdb1.bd_material bd_material on mm_pickm_b.cbmaterialvid = bd_material.pk_material " + 
					"where (mm_pickm_b.cpickmid = '"+cpickmid+"') " + //备料计划订单号
					"and mm_pickm_b.dr = 0 " ;
			
			//nc备料计划
			List<Map<String, Object>> partsList = DynamicDBUtil.findList(ConstantUtil.NC_DB,sql2);
			for (Map<String, Object> map2 : partsList) {
				if(map2.get("IS_THEKEY") != null && "Y".equals(map2.get("IS_THEKEY").toString()) ) {
					
					
					//已安装的关重件
					List<DbThekeyStationScanLogEntity> tsslSize = dbThekeyStationScanLogService.findHql("from DbThekeyStationScanLogEntity "
							+ "where vinCode=? and carTypeCode=? and thekeyCode=? ",zch,cxh,map2.get("CODE").toString());
					if(tsslSize !=null && tsslSize.size() > 0) {
						map2.put("INSTALL_COUNT",tsslSize.size());//已安装的数量
					}else {
						map2.put("INSTALL_COUNT",0);//已安装的数量
					}
					
					data.add(map2);
				}
			}
			
			//分页主体
			List<Map<String, Object>> showList = null;//要显示的数据
			int showLen = dataGrid.getRows();//动态得到前端需要显示多少条
			int totlePage = data.size()%showLen == 0 ? data.size()/showLen : data.size()/showLen + 1;
			if(dataGrid.getPage() == 1 ) {
				if(showLen > data.size()) {
					showLen = data.size();
				}
				showList = data.subList(0, showLen);
			}else {
				if(dataGrid.getPage() == totlePage) {
					showList = data.subList(((dataGrid.getPage()-1)*showLen),data.size());
				}else {
					showList = data.subList(((dataGrid.getPage()-1)*showLen),((dataGrid.getPage()-1)*showLen)+showLen);
				}
			}
			
			dataGrid.setResults(showList);
			dataGrid.setTotal(data.size());//总条数
		}
		
		
		TagUtil.datagrid(response, dataGrid);
	}

	
	
	
	
	
		
		
}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<t:base type="jquery,easyui,tools,DatePicker"></t:base>
<div class="easyui-layout" fit="true"> 
  <div region="center" style="padding:0px;border:0px">
  <t:datagrid name="planQueryList" checkbox="true" pagination="true" fitColumns="true" title="生产计划" sortName="lrrq" extendParams="view: detailview,detailFormatter:detailFormatterFun,onExpandRow: onExpandRowFun" actionUrl="planQueryController.do?datagrid" idField="id" fit="true" queryMode="group">
   <t:dgCol title="id" field="id"  hidden="true"  queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="整车号"  field="zch" query="true" queryMode="single" width="120"></t:dgCol>
   <t:dgCol title="计划订单号"  field="ufjhdh" queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="计划订单行号"  field="ufscdd_hh" queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="车型号" field="cxh" queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="车型名称" field="chmc" queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="车型名称(全)" field="hgzcxmc" queryMode="single"  width="120"></t:dgCol>
   <t:dgCol title="合格证打印情况" field="cdefine6" queryMode="single"  width="120"></t:dgCol> 
   <t:dgCol title="日期"  field="lrrq" formatter="yyyy-MM-dd" query="true" queryMode="group"  width="120"></t:dgCol>
   <%-- <t:dgCol title="操作" field="opt" width="100"></t:dgCol> --%>
   
   
   <!-- 自定义查询 -->
    <div id="planQueryListtb" style="padding: 3px; height: 25px">
		  	 <div style="float: left;">
	  			  <label for="zch" class="col-sm-2 control-label">整车号: </label>
	  			  <input type="text" id="zch" name="zch" class="ac_input">
	  			  
	  			  <label for="cxh" class="col-sm-2 control-label">车型号: </label>
	  			  <input type="text" id="cxh" name="cxh" class="ac_input">
	  			  
	  			  <label for="sj" class="col-sm-2 control-label">日期: </label>
	  			  <input id="sj_begin" name="sj_begin" autocomplete="off" type="text" style="width: 150px"  class="Wdate" onClick="WdatePicker()"  datatype="*"  ignore="checked"   value='<fmt:formatDate value='${sj_begin}' type="date" pattern="yyyy-MM-dd"/>' />
	  			  ~<input id="sj_end" name="sj_end" autocomplete="off" type="text" style="width: 150px"  class="Wdate" onClick="WdatePicker()"  datatype="*"  ignore="checked"   value='<fmt:formatDate value='${sj_end}' type="date" pattern="yyyy-MM-dd"/>' />
			  </div>
	  		  <div align="right" class="searchColums">
	  			 <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="f_listsearch();">查询</a>
				 <a href="#" class="easyui-linkbutton" iconCls="icon-reload" onclick="searchReset('planQueryList');initjfoInfo();">重置</a>
	  		 </div>
  	  </div>
   
  </t:datagrid>
  </div>
 </div>
 //这里要引入的js 库
<script src="plug-in/easyui/extends/datagrid-detailview.js"></script>
 
 <script type="text/javascript">

 //查询
 function f_listsearch(){
	//判断日期不能为空
	var sj_begin = $("#sj_begin").val();
	var sj_end = $("#sj_end").val();
	planQueryListsearch();
	
 }
 

 
 
 
 
 
 
//返回行明细内容的格式化函数。
 function detailFormatterFun() {
     var s = '<div class="orderInfoHidden" style="padding:2px;">' 
    		+ '		<div class="easyui-tabs" style="height:230px;width:850px;">' 
    		+ '			<div title="关重件" style="padding:2px;">' 
    		+ '				<table class="plan_query_linetablelines" ></table>' 
    		+ '			</div>' 
    		+ '		</div>' 
    		+ '	</div>';
     return s;
 }
 //当展开一行时触发 
 function onExpandRowFun(index, row) {
 	//把加上的子表tabs和datagrid初始化
     var tabs = $(this).datagrid('getRowDetail', index).find('div.easyui-tabs');
     tabs.tabs();
     var plan_query_linetablelines = $(this).datagrid('getRowDetail', index).find('table.plan_query_linetablelines');
     var plan_query_linedurl = 'planQueryController.do?planQueryLineDatagrid&field=code,name,nunituseastnum,INSTALL_COUNT,work_station_code,work_station_name,is_thekey&zch='+ row.zch+'&ufjhdh=' + row.ufjhdh+'&ufscdd_hh='+ row.ufscdd_hh+'&cxh='+row.cxh;
     plan_query_linetablelines.datagrid({
         singleSelect: true,
         loadMsg: '正在加载',
         fitColumns: true,
         height: '200',
         pageSize: 50,
         pageList: [50, 150, 200, 250, 300],
         border: false,
         url: plan_query_linedurl,
         idField: 'code',
         rownumbers: true,
         pagination: true,
         columns: [[{
             title: '零部件编号',
             field: 'code',
             align: 'left',
             width: 60
         },
         {
             title: '零部件名称',
             field: 'name',
             align: 'left',
             width: 180
         },
         {
             title: '应装数量',
             field: 'nunituseastnum',
             align: 'left',
             width: 50
         },
         {
             title: '装配数量',
             field: 'INSTALL_COUNT',
             align: 'left',
             width: 50,
            /* formatter:function(value,row,index){
			 	return "<a href='javascript:void(0);' onclick='ann();'>用户权限</a>";
			 }, */
             styler:function(value,row,index){
			   var s1 = 'background-color:#ecb908';//橙
			   //应装数量不等于装配数量颜色改变
			   if (row.nunituseastnum != value ) {
			       return s1;
			   }
			 }
         },
         {
             title: '工位编码',
             field: 'work_station_code',
             align: 'left',
             width: 50
         },
         {
             title: '工位名称',
             field: 'work_station_name',
             align: 'left',
             width: 50
         },
         {
             title: '是否是关重件',
             field: 'is_thekey',
             align: 'left',
             width: 60
         }
         
         ]]
     });
 }
 </script>

 效果

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值