PurchaseRptController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. package cn.com.lzt.report.controller;
  2. import java.text.DecimalFormat;
  3. import java.text.Format;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.List;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import org.apache.commons.lang.xwork.StringUtils;
  11. import org.apache.log4j.Logger;
  12. import org.jeecgframework.core.common.controller.BaseController;
  13. import org.jeecgframework.core.common.exception.BusinessException;
  14. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  15. import org.jeecgframework.core.common.model.json.DataGrid;
  16. import org.jeecgframework.core.util.DateUtils;
  17. import org.jeecgframework.core.util.ResourceUtil;
  18. import org.jeecgframework.poi.excel.entity.ExportParams;
  19. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  20. import org.jeecgframework.tag.core.easyui.TagUtil;
  21. import org.jeecgframework.web.system.service.SystemService;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Controller;
  24. import org.springframework.ui.ModelMap;
  25. import org.springframework.web.bind.annotation.RequestMapping;
  26. import org.springframework.web.bind.annotation.ResponseBody;
  27. import org.springframework.web.servlet.ModelAndView;
  28. import com.xcgl.utils.XcglDateUtils;
  29. import cn.com.lzt.purchase.controller.POrdersController;
  30. import cn.com.lzt.purchase.entity.POrdersEntity;
  31. import cn.com.lzt.report.dao.PurchaseRptDao;
  32. import cn.com.lzt.report.dto.SupplierSumRptDto;
  33. import cn.com.lzt.report.entity.ProjectPurchaseSum4LeaderEntity;
  34. import cn.com.lzt.report.entity.ProjectPurchaseSumEntity;
  35. import cn.com.lzt.report.entity.SGDSummaryEntity;
  36. @Controller
  37. @RequestMapping("/purchaseRptController")
  38. public class PurchaseRptController extends BaseController
  39. {
  40. @Autowired
  41. private PurchaseRptDao reportDao;
  42. @Autowired
  43. private SystemService systemService;
  44. /**
  45. * Logger for this class
  46. */
  47. private static final Logger logger = Logger.getLogger(POrdersController.class);
  48. /**
  49. * 物料采购汇总表
  50. * */
  51. @RequestMapping(params = "projectPurchaseSumRpt")
  52. public ModelAndView list(HttpServletRequest request) {
  53. return new ModelAndView("cn/com/lzt/report/projectPurchaseSumRpt");
  54. }
  55. @RequestMapping(params = "projectPurchaseSumRptData")
  56. @ResponseBody
  57. public List<ProjectPurchaseSumEntity> getGridDate(HttpServletRequest request) {
  58. String load = request.getParameter("load");
  59. List<ProjectPurchaseSumEntity> data;
  60. if(load != null && load.equals("false"))
  61. {
  62. data = new ArrayList<ProjectPurchaseSumEntity>();
  63. data.add(new ProjectPurchaseSumEntity());
  64. return data;
  65. }
  66. String attType = request.getParameter("attType");
  67. String attYear = request.getParameter("attYear");
  68. String attMonth = request.getParameter("attMonth");
  69. String attQuarters = request.getParameter("attQuarters");
  70. Format f2 = new DecimalFormat("00");
  71. String begin = "",end = "";
  72. if(attType.equals("0")) {//月度
  73. begin = attYear + "-" + attMonth;
  74. end = attYear + "-" + attMonth;
  75. }else if(attType.equals("1")) {//季度
  76. begin = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3 + 1);
  77. end = attYear + "-" + f2.format(Integer.parseInt(attQuarters) * 3);
  78. }else {//年度
  79. begin = attYear + "-01";
  80. end = attYear + "-12";
  81. }
  82. data = reportDao.getAllEntry(begin,end,request.getParameter("warehouseid"));
  83. return data;
  84. }
  85. /**
  86. * 物料采购分类汇总表
  87. * */
  88. @RequestMapping(params = "projectPurchaseSum4LeaderRpt")
  89. public ModelAndView list4Leader(HttpServletRequest request) {
  90. return new ModelAndView("cn/com/lzt/report/projectPurchaseSum4LeaderRpt");
  91. }
  92. /**
  93. * 物料采购分类汇总表
  94. * */
  95. @RequestMapping(params = "projectPurchaseSum4LeaderRptData")
  96. @ResponseBody
  97. public List<ProjectPurchaseSum4LeaderEntity> projectPurchaseSum4LeaderRptData(HttpServletRequest request) {
  98. String load = request.getParameter("load");
  99. List<ProjectPurchaseSum4LeaderEntity> data;
  100. if(load != null && load.equals("false"))
  101. {
  102. data = new ArrayList<ProjectPurchaseSum4LeaderEntity>();
  103. data.add(new ProjectPurchaseSum4LeaderEntity());
  104. return data;
  105. }
  106. String attType = request.getParameter("attType");
  107. String attYear = request.getParameter("attYear");
  108. String attMonth = request.getParameter("attMonth");
  109. String attQuarters = request.getParameter("attQuarters");
  110. Format f2 = new DecimalFormat("00");
  111. String begin = "",end = "",preBegin = "", preEnd = "";
  112. if(attType.equals("0")) {//月度
  113. begin = attYear + "-" + attMonth;
  114. end = attYear + "-" + attMonth;
  115. if(attMonth.equals("01"))
  116. {
  117. String premonth = "12";
  118. preBegin = Integer.toString((Integer.parseInt(attYear) - 1))+"-"+premonth;
  119. preEnd = preBegin;
  120. }else {
  121. preBegin = attYear +"-"+(Integer.parseInt(attMonth)<11?
  122. "0"+(Integer.parseInt(attMonth) - 1):Integer.parseInt(attMonth) - 1);
  123. preEnd = preBegin;
  124. }
  125. }else if(attType.equals("1")) {//季度
  126. begin = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3 + 1);
  127. end = attYear + "-" + f2.format(Integer.parseInt(attQuarters) * 3);
  128. if(attQuarters.equals("1")) {
  129. preBegin = Integer.toString((Integer.parseInt(attYear) - 1))+"-10";
  130. preEnd = Integer.toString((Integer.parseInt(attYear) - 1))+"-12";
  131. }else {
  132. preBegin = attYear +"-" + f2.format((Integer.parseInt(attQuarters) - 2) * 3 + 1);
  133. preEnd = attYear + "-" + f2.format((Integer.parseInt(attQuarters) - 1) * 3);
  134. }
  135. }else {//年度
  136. begin = attYear + "-01";
  137. end = attYear + "-12";
  138. preBegin = String.valueOf(Integer.parseInt(attYear) - 1)+ "-01";
  139. preEnd = String.valueOf(Integer.parseInt(attYear) - 1)+ "-12";
  140. }
  141. data = reportDao.getAllEntry4Leader(begin,end,preBegin,preEnd,request.getParameter("warehouseid"));
  142. return data;
  143. }
  144. /**
  145. * 物料采购分类汇总表
  146. * */
  147. @RequestMapping(params = "SGDSummaryRpt")
  148. public ModelAndView listSGDSummaryRpt(HttpServletRequest request) {
  149. return new ModelAndView("cn/com/lzt/report/sgdSummaryRpt");
  150. }
  151. @RequestMapping(params = "SGDSummaryRptData")
  152. @ResponseBody
  153. public List<SGDSummaryEntity> getGridDateSGDSummaryRpt(HttpServletRequest request) {
  154. String load = request.getParameter("load");
  155. List<SGDSummaryEntity> data;
  156. if(load != null && load.equals("false"))
  157. {
  158. data = new ArrayList<SGDSummaryEntity>();
  159. data.add(new SGDSummaryEntity());
  160. return data;
  161. }
  162. //当前月度(期间)
  163. String period = request.getParameter("period");
  164. // if(period == null || period.length() == 0)
  165. // {
  166. // period = DateUtils.formatDate(DateUtil.getCurrDate(), "yyyy-MM");
  167. //
  168. // }else {
  169. // String year = period.substring(0, 4);
  170. // String month = period.substring(4);
  171. // period = year+"-"+month;
  172. // }
  173. data = reportDao.getAllEntry4SGDSummary(period,request.getParameter("warehouseid"));
  174. return data;
  175. }
  176. /**
  177. * 供应商供货汇总表
  178. * */
  179. @RequestMapping(params = "supplierSumRpt")
  180. public ModelAndView supplierSumRpt(HttpServletRequest request) {
  181. String today = DateUtils.date_sdf.format(new Date());
  182. String monthEarly = XcglDateUtils.addDateMonth(new Date(), -1, DateUtils.date_sdf);
  183. request.setAttribute("orderDate_end", today);
  184. request.setAttribute("orderDate_begin", monthEarly);
  185. return new ModelAndView("cn/com/lzt/report/supplierSumRpt");
  186. }
  187. @RequestMapping(params = "datagridsupplierSumRpt")
  188. public void datagridsupplierSumRpt(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  189. CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid);
  190. String orderDateBegin = request.getParameter("orderDate_begin");
  191. String orderDateEnd = request.getParameter("orderDate_end");
  192. String warehouseName = orders.getWarehouseName();
  193. String supplierName = request.getParameter("supplierName");
  194. List<String> supList = null;
  195. if(StringUtils.isNotEmpty(supplierName)) {
  196. String hql = "select id FROM t_b_related_units where unit_Name like '%"+supplierName+"%'";
  197. supList = systemService.findListbySql(hql);
  198. orders.setSupplierName(null);
  199. }
  200. if(StringUtils.isNotBlank(warehouseName)){
  201. orders.setWarehouseName("*" +warehouseName +"*");
  202. }
  203. //查询条件组装器
  204. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders);
  205. try{
  206. //自定义追加查询条件
  207. if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){
  208. cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00"));
  209. cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59"));
  210. }
  211. }catch (Exception e) {
  212. throw new BusinessException(e.getMessage());
  213. }
  214. cq.add();
  215. List<POrdersEntity> list = systemService.getListByCriteriaQuery(cq, false);
  216. if(list.size() == 0)
  217. return;
  218. List<String> ids = new ArrayList<String>();
  219. for (POrdersEntity order : list) {
  220. ids.add(order.getId());
  221. }
  222. List<SupplierSumRptDto> retlist = supList !=null && supList.size() == 0 ? new ArrayList<SupplierSumRptDto>():
  223. reportDao.getAllEntry4SupplierSummary(ids, supList);
  224. dataGrid.setResults(retlist);
  225. double notarrived = 0;
  226. for (SupplierSumRptDto detail : retlist) {
  227. notarrived += detail.getQuantityNotArrived() == null?0:detail.getQuantityNotArrived();
  228. }
  229. dataGrid.setFooter("quantity,money,quantityNotArrived:"+notarrived);
  230. TagUtil.datagrid(response, dataGrid);
  231. }
  232. //供应商供货汇总表 : 数据钻取列表
  233. @RequestMapping(params = "supplierSumRptDetail")
  234. public ModelAndView supplierSumRptDetail(HttpServletRequest request) {
  235. request.setAttribute("orderDate_end", request.getParameter("orderDate_end"));
  236. request.setAttribute("orderDate_begin", request.getParameter("orderDate_begin"));
  237. request.setAttribute("warehouseName", request.getParameter("warehouseName"));
  238. request.setAttribute("supplierid", request.getParameter("supplierid"));
  239. request.setAttribute("goodsId", request.getParameter("goodsId"));
  240. return new ModelAndView("cn/com/lzt/report/supplierSumRptDetail");
  241. }
  242. @RequestMapping(params = "datagridsupplierSumRptDetail")
  243. public void datagridsupplierSumRptDetail(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  244. CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid);
  245. String orderDateBegin = request.getParameter("orderDate_begin");
  246. String orderDateEnd = request.getParameter("orderDate_end");
  247. String warehouseName = orders.getWarehouseName();
  248. String supplierid = request.getParameter("supplierid");
  249. String goodsId = request.getParameter("goodsId");
  250. orders.setSupplierId(null);
  251. if(StringUtils.isNotBlank(warehouseName)){
  252. orders.setWarehouseName("*" +warehouseName +"*");
  253. }
  254. //查询条件组装器
  255. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders);
  256. try{
  257. //自定义追加查询条件
  258. if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){
  259. cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00"));
  260. cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59"));
  261. }
  262. }catch (Exception e) {
  263. throw new BusinessException(e.getMessage());
  264. }
  265. cq.add();
  266. List<POrdersEntity> list = systemService.getListByCriteriaQuery(cq, false);
  267. if(list.size() == 0)
  268. return;
  269. List<String> orderids = new ArrayList<String>();
  270. for (POrdersEntity order : list) {
  271. orderids.add(order.getId());
  272. }
  273. List<SupplierSumRptDto> retlist = reportDao.getAllEntry4SupplierSummaryDetail(orderids, supplierid,goodsId);
  274. dataGrid.setResults(retlist);
  275. double notarrived = 0;
  276. for (SupplierSumRptDto detail : retlist) {
  277. notarrived += detail.getQuantityNotArrived() == null?0:detail.getQuantityNotArrived();
  278. }
  279. dataGrid.setFooter("quantity,money,quantityNotArrived:"+notarrived);
  280. TagUtil.datagrid(response, dataGrid);
  281. }
  282. @RequestMapping(params = "exportxmlSupplierSumRpt")
  283. public String exportxmlSupplierSumRpt(POrdersEntity orders,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) {
  284. CriteriaQuery cq = new CriteriaQuery(POrdersEntity.class, dataGrid);
  285. String orderDateBegin = request.getParameter("orderDate_begin");
  286. String orderDateEnd = request.getParameter("orderDate_end");
  287. String warehouseName = orders.getWarehouseName();
  288. String supplierName = request.getParameter("supplierName");
  289. List<String> supList = null;
  290. if(StringUtils.isNotEmpty(supplierName)) {
  291. String hql = "select id FROM t_b_related_units where unit_Name like '%"+supplierName+"%'";
  292. supList = systemService.findListbySql(hql);
  293. orders.setSupplierName(null);
  294. }
  295. if(StringUtils.isNotBlank(warehouseName)){
  296. orders.setWarehouseName("*" +warehouseName +"*");
  297. }
  298. //查询条件组装器
  299. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, orders);
  300. try{
  301. //自定义追加查询条件
  302. if(StringUtils.isNotBlank(orderDateBegin) && StringUtils.isNotBlank(orderDateEnd)){
  303. cq.ge("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateBegin + " 00:00:00"));
  304. cq.le("orderDate", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(orderDateEnd + " 23:59:59"));
  305. }
  306. }catch (Exception e) {
  307. throw new BusinessException(e.getMessage());
  308. }
  309. cq.add();
  310. List<POrdersEntity> list = systemService.getListByCriteriaQuery(cq, false);
  311. List<SupplierSumRptDto> retlist = new ArrayList<SupplierSumRptDto>();
  312. if(list.size() > 0) {
  313. List<String> ids = new ArrayList<String>();
  314. for (POrdersEntity order : list) {
  315. ids.add(order.getId());
  316. }
  317. retlist = supList !=null && supList.size() == 0 ? new ArrayList<SupplierSumRptDto>():
  318. reportDao.getAllEntry4SupplierSummary(ids, supList);
  319. }
  320. map.put(NormalExcelConstants.FILE_NAME,"供应商供货汇总表"+DateUtils.yyyymmddhhmmss.format(new Date()));
  321. map.put(NormalExcelConstants.CLASS,SupplierSumRptDto.class);
  322. map.put(NormalExcelConstants.PARAMS,new ExportParams("供应商供货汇总表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  323. "导出信息"));
  324. map.put(NormalExcelConstants.DATA_LIST,retlist);
  325. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  326. }
  327. }