package cn.com.lzt.report.controller; import java.text.DecimalFormat; import java.text.Format; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.xwork.StringUtils; import org.apache.log4j.Logger; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.util.DateUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.xcgl.utils.XcglDateUtils; import cn.com.lzt.purchase.controller.POrdersController; import cn.com.lzt.purchase.entity.POrdersEntity; import cn.com.lzt.report.dao.PurchaseRptDao; import cn.com.lzt.report.dto.SupplierSumRptDto; import cn.com.lzt.report.entity.ProjectPurchaseSum4LeaderEntity; import cn.com.lzt.report.entity.ProjectPurchaseSumEntity; import cn.com.lzt.report.entity.SGDSummaryEntity; @Controller @RequestMapping("/purchaseRptController") public class PurchaseRptController extends BaseController { @Autowired private PurchaseRptDao reportDao; @Autowired private SystemService systemService; /** * Logger for this class */ private static final Logger logger = Logger.getLogger(POrdersController.class); /** * 物料采购汇总表 * */ @RequestMapping(params = "projectPurchaseSumRpt") public ModelAndView list(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/report/projectPurchaseSumRpt"); } @RequestMapping(params = "projectPurchaseSumRptData") @ResponseBody public List getGridDate(HttpServletRequest request) { String load = request.getParameter("load"); List data; if(load != null && load.equals("false")) { data = new ArrayList(); data.add(new ProjectPurchaseSumEntity()); return data; } String attType = request.getParameter("attType"); String attYear = request.getParameter("attYear"); String attMonth = request.getParameter("attMonth"); String attQuarters = request.getParameter("attQuarters"); Format f2 = new DecimalFormat("00"); String begin = "",end = ""; if(attType.equals("0")) {//月度 begin = attYear + "-" + attMonth; end = attYear + "-" + attMonth; }else if(attType.equals("1")) {//季度 begin = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3 + 1); end = attYear + "-" + f2.format(Integer.parseInt(attQuarters) * 3); }else {//年度 begin = attYear + "-01"; end = attYear + "-12"; } data = reportDao.getAllEntry(begin,end,request.getParameter("warehouseid")); return data; } /** * 物料采购分类汇总表 * */ @RequestMapping(params = "projectPurchaseSum4LeaderRpt") public ModelAndView list4Leader(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/report/projectPurchaseSum4LeaderRpt"); } /** * 物料采购分类汇总表 * */ @RequestMapping(params = "projectPurchaseSum4LeaderRptData") @ResponseBody public List projectPurchaseSum4LeaderRptData(HttpServletRequest request) { String load = request.getParameter("load"); List data; if(load != null && load.equals("false")) { data = new ArrayList(); data.add(new ProjectPurchaseSum4LeaderEntity()); return data; } String attType = request.getParameter("attType"); String attYear = request.getParameter("attYear"); String attMonth = request.getParameter("attMonth"); String attQuarters = request.getParameter("attQuarters"); Format f2 = new DecimalFormat("00"); String begin = "",end = "",preBegin = "", preEnd = ""; if(attType.equals("0")) {//月度 begin = attYear + "-" + attMonth; end = attYear + "-" + attMonth; if(attMonth.equals("01")) { String premonth = "12"; preBegin = Integer.toString((Integer.parseInt(attYear) - 1))+"-"+premonth; preEnd = preBegin; }else { preBegin = attYear +"-"+(Integer.parseInt(attMonth)<11? "0"+(Integer.parseInt(attMonth) - 1):Integer.parseInt(attMonth) - 1); preEnd = preBegin; } }else if(attType.equals("1")) {//季度 begin = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3 + 1); end = attYear + "-" + f2.format(Integer.parseInt(attQuarters) * 3); if(attQuarters.equals("1")) { preBegin = Integer.toString((Integer.parseInt(attYear) - 1))+"-10"; preEnd = Integer.toString((Integer.parseInt(attYear) - 1))+"-12"; }else { preBegin = attYear +"-" + f2.format((Integer.parseInt(attQuarters) - 2) * 3 + 1); preEnd = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3); } }else {//年度 begin = attYear + "-01"; end = attYear + "-12"; preBegin = String.valueOf(Integer.parseInt(attYear) - 1)+ "-01"; preEnd = String.valueOf(Integer.parseInt(attYear) - 1)+ "-12"; } data = reportDao.getAllEntry4Leader(begin,end,preBegin,preEnd,request.getParameter("warehouseid")); return data; } /** * 物料采购分类汇总表 * */ @RequestMapping(params = "SGDSummaryRpt") public ModelAndView listSGDSummaryRpt(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/report/sgdSummaryRpt"); } @RequestMapping(params = "SGDSummaryRptData") @ResponseBody public List getGridDateSGDSummaryRpt(HttpServletRequest request) { String load = request.getParameter("load"); List data; if(load != null && load.equals("false")) { data = new ArrayList(); data.add(new SGDSummaryEntity()); return data; } //当前月度(期间) String period = request.getParameter("period"); // if(period == null || period.length() == 0) // { // period = DateUtils.formatDate(DateUtil.getCurrDate(), "yyyy-MM"); // // }else { // String year = period.substring(0, 4); // String month = period.substring(4); // period = year+"-"+month; // } data = reportDao.getAllEntry4SGDSummary(period,request.getParameter("warehouseid")); return data; } /** * 供应商供货汇总表 * */ @RequestMapping(params = "supplierSumRpt") public ModelAndView supplierSumRpt(HttpServletRequest request) { String today = DateUtils.date_sdf.format(new Date()); String monthEarly = XcglDateUtils.addDateMonth(new Date(), -1, DateUtils.date_sdf); request.setAttribute("orderDate_end", today); request.setAttribute("orderDate_begin", monthEarly); return new ModelAndView("cn/com/lzt/report/supplierSumRpt"); } @RequestMapping(params = "datagridsupplierSumRpt") public void datagridsupplierSumRpt(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid); String orderDateBegin = request.getParameter("orderDate_begin"); String orderDateEnd = request.getParameter("orderDate_end"); String warehouseName = orders.getWarehouseName(); String supplierName = request.getParameter("supplierName"); List supList = null; if(StringUtils.isNotEmpty(supplierName)) { String hql = "select id FROM t_b_related_units where unit_Name like '%"+supplierName+"%'"; supList = systemService.findListbySql(hql); orders.setSupplierName(null); } if(StringUtils.isNotBlank(warehouseName)){ orders.setWarehouseName("*" +warehouseName +"*"); } //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders); try{ //自定义追加查询条件 if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){ cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00")); cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59")); } }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); List list = systemService.getListByCriteriaQuery(cq, false); if(list.size() == 0) return; List ids = new ArrayList(); for (POrdersEntity order : list) { ids.add(order.getId()); } List retlist = supList !=null && supList.size() == 0 ? new ArrayList(): reportDao.getAllEntry4SupplierSummary(ids, supList); dataGrid.setResults(retlist); double notarrived = 0; for (SupplierSumRptDto detail : retlist) { notarrived += detail.getQuantityNotArrived() == null?0:detail.getQuantityNotArrived(); } dataGrid.setFooter("quantity,money,quantityNotArrived:"+notarrived); TagUtil.datagrid(response, dataGrid); } //供应商供货汇总表 : 数据钻取列表 @RequestMapping(params = "supplierSumRptDetail") public ModelAndView supplierSumRptDetail(HttpServletRequest request) { request.setAttribute("orderDate_end", request.getParameter("orderDate_end")); request.setAttribute("orderDate_begin", request.getParameter("orderDate_begin")); request.setAttribute("warehouseName", request.getParameter("warehouseName")); request.setAttribute("supplierid", request.getParameter("supplierid")); request.setAttribute("goodsId", request.getParameter("goodsId")); return new ModelAndView("cn/com/lzt/report/supplierSumRptDetail"); } @RequestMapping(params = "datagridsupplierSumRptDetail") public void datagridsupplierSumRptDetail(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid); String orderDateBegin = request.getParameter("orderDate_begin"); String orderDateEnd = request.getParameter("orderDate_end"); String warehouseName = orders.getWarehouseName(); String supplierid = request.getParameter("supplierid"); String goodsId = request.getParameter("goodsId"); orders.setSupplierId(null); if(StringUtils.isNotBlank(warehouseName)){ orders.setWarehouseName("*" +warehouseName +"*"); } //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders); try{ //自定义追加查询条件 if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){ cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00")); cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59")); } }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); List list = systemService.getListByCriteriaQuery(cq, false); if(list.size() == 0) return; List orderids = new ArrayList(); for (POrdersEntity order : list) { orderids.add(order.getId()); } List retlist = reportDao.getAllEntry4SupplierSummaryDetail(orderids, supplierid,goodsId); dataGrid.setResults(retlist); double notarrived = 0; for (SupplierSumRptDto detail : retlist) { notarrived += detail.getQuantityNotArrived() == null?0:detail.getQuantityNotArrived(); } dataGrid.setFooter("quantity,money,quantityNotArrived:"+notarrived); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "exportxmlSupplierSumRpt") public String exportxmlSupplierSumRpt(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) { CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid); String orderDateBegin = request.getParameter("orderDate_begin"); String orderDateEnd = request.getParameter("orderDate_end"); String warehouseName = orders.getWarehouseName(); String supplierName = request.getParameter("supplierName"); List supList = null; if(StringUtils.isNotEmpty(supplierName)) { String hql = "select id FROM t_b_related_units where unit_Name like '%"+supplierName+"%'"; supList = systemService.findListbySql(hql); orders.setSupplierName(null); } if(StringUtils.isNotBlank(warehouseName)){ orders.setWarehouseName("*" +warehouseName +"*"); } //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders); try{ //自定义追加查询条件 if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){ cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00")); cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59")); } }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); List list = systemService.getListByCriteriaQuery(cq, false); List retlist = new ArrayList(); if(list.size() > 0) { List ids = new ArrayList(); for (POrdersEntity order : list) { ids.add(order.getId()); } retlist = supList !=null && supList.size() == 0 ? new ArrayList(): reportDao.getAllEntry4SupplierSummary(ids, supList); } map.put(NormalExcelConstants.FILE_NAME,"供应商供货汇总表"+DateUtils.yyyymmddhhmmss.format(new Date())); map.put(NormalExcelConstants.CLASS,SupplierSumRptDto.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("供应商供货汇总表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导出信息")); map.put(NormalExcelConstants.DATA_LIST,retlist); return NormalExcelConstants.JEECG_EXCEL_VIEW; } }