RelatedUnitsController.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739
  1. package cn.com.lzt.relatedunits.controller;
  2. import cn.com.lzt.common.service.TSysFileServiceI;
  3. import cn.com.lzt.common.util.CustomerConstant;
  4. import cn.com.lzt.relatedunits.entity.RelatedUnitsEntity;
  5. import cn.com.lzt.relatedunits.page.RelatedUnitsPage;
  6. import cn.com.lzt.relatedunits.service.RelatedUnitsServiceI;
  7. import cn.com.lzt.relatedunitscontacts.entity.RelatedUnitsContactsEntity;
  8. import cn.com.lzt.relatedunitsextrainfo.entity.RelatedUnitsExtrainfoEntity;
  9. import cn.com.lzt.tools.SaltUtil;
  10. import com.aliyun.oss.OSSClient;
  11. import com.aliyun.oss.model.OSSObject;
  12. import org.apache.commons.lang.xwork.StringUtils;
  13. import org.apache.log4j.Logger;
  14. import org.jeecgframework.core.beanvalidator.BeanValidators;
  15. import org.jeecgframework.core.common.controller.BaseController;
  16. import org.jeecgframework.core.common.exception.BusinessException;
  17. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  18. import org.jeecgframework.core.common.model.json.AjaxJson;
  19. import org.jeecgframework.core.common.model.json.DataGrid;
  20. import org.jeecgframework.core.constant.Globals;
  21. import org.jeecgframework.core.util.ExceptionUtil;
  22. import org.jeecgframework.core.util.MyBeanUtils;
  23. import org.jeecgframework.core.util.ResourceUtil;
  24. import org.jeecgframework.core.util.StringUtil;
  25. import org.jeecgframework.poi.excel.ExcelImportUtil;
  26. import org.jeecgframework.poi.excel.entity.ExportParams;
  27. import org.jeecgframework.poi.excel.entity.ImportParams;
  28. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  29. import org.jeecgframework.tag.core.easyui.TagUtil;
  30. import org.jeecgframework.tag.vo.datatable.SortDirection;
  31. import org.jeecgframework.web.system.pojo.base.TSBaseUser;
  32. import org.jeecgframework.web.system.pojo.base.TSUser;
  33. import org.jeecgframework.web.system.service.SystemService;
  34. import org.springframework.beans.factory.annotation.Autowired;
  35. import org.springframework.http.HttpHeaders;
  36. import org.springframework.http.HttpStatus;
  37. import org.springframework.http.MediaType;
  38. import org.springframework.http.ResponseEntity;
  39. import org.springframework.stereotype.Controller;
  40. import org.springframework.ui.ModelMap;
  41. import org.springframework.web.bind.annotation.*;
  42. import org.springframework.web.multipart.MultipartFile;
  43. import org.springframework.web.multipart.MultipartHttpServletRequest;
  44. import org.springframework.web.servlet.ModelAndView;
  45. import org.springframework.web.util.UriComponentsBuilder;
  46. import javax.servlet.http.HttpServletRequest;
  47. import javax.servlet.http.HttpServletResponse;
  48. import javax.validation.ConstraintViolation;
  49. import javax.validation.Validator;
  50. import java.io.BufferedInputStream;
  51. import java.io.IOException;
  52. import java.io.InputStream;
  53. import java.io.OutputStream;
  54. import java.net.URI;
  55. import java.text.SimpleDateFormat;
  56. import java.util.*;
  57. import java.util.zip.ZipEntry;
  58. import java.util.zip.ZipOutputStream;
  59. /**
  60. * @Title: Controller
  61. * @Description: 往来单位管理表
  62. * @author onlineGenerator
  63. * @date 2017-06-17 15:13:52
  64. * @version V1.0
  65. *
  66. */
  67. @Controller
  68. @RequestMapping("/relatedUnitsController")
  69. public class RelatedUnitsController extends BaseController {
  70. /**
  71. * Logger for this class
  72. */
  73. private static final Logger logger = Logger.getLogger(RelatedUnitsController.class);
  74. @Autowired
  75. private RelatedUnitsServiceI relatedUnitsService;
  76. @Autowired
  77. private SystemService systemService;
  78. @Autowired
  79. private Validator validator;
  80. @Autowired
  81. private TSysFileServiceI tSysFileService;
  82. /**
  83. * 往来单位管理表列表 页面跳转
  84. *
  85. * @return
  86. */
  87. @RequestMapping(params = "list")
  88. public ModelAndView list(HttpServletRequest request) {
  89. return new ModelAndView("cn/com/lzt/relatedunits/relatedUnitsList");
  90. }
  91. /**
  92. * easyui AJAX请求数据
  93. *
  94. * @param request
  95. * @param response
  96. * @param dataGrid
  97. * @param user
  98. */
  99. @RequestMapping(params = "datagrid")
  100. public void datagrid(RelatedUnitsEntity relatedUnits,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  101. CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class, dataGrid);
  102. try{
  103. //自定义追加查询条件
  104. String[] unitstate = new String[]{Globals.Enable_Forbidden, Globals.Enable_Normal};
  105. cq.in("status", unitstate);
  106. cq.eq("deleteFlag", Globals.Delete_Normal.toString());
  107. if(StringUtils.isNotBlank(relatedUnits.getUnitName())){
  108. //模糊查询
  109. cq.like("unitName", "%"+relatedUnits.getUnitName()+"%");
  110. relatedUnits.setUnitName(null);
  111. }
  112. cq.addOrder("createDate", SortDirection.desc);
  113. }catch (Exception e) {
  114. throw new BusinessException(e.getMessage());
  115. }
  116. //查询条件组装器
  117. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, relatedUnits);
  118. cq.add();
  119. this.relatedUnitsService.getDataGridReturn(cq, true);
  120. List<RelatedUnitsEntity> list = systemService.getListByCriteriaQuery(cq, false);
  121. if(list != null) {
  122. for(RelatedUnitsEntity entity : list) {
  123. String id = entity.getId();
  124. String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  125. try{
  126. List<RelatedUnitsContactsEntity> relatedUnitsContactsEntityList = systemService.findHql(hql0,id);
  127. if(relatedUnitsContactsEntityList != null && relatedUnitsContactsEntityList.size()>0) {
  128. entity.setFirstContacts(relatedUnitsContactsEntityList.get(0).getName());
  129. entity.setFirstContactsTel(relatedUnitsContactsEntityList.get(0).getTelphone());
  130. }
  131. }catch(Exception e){
  132. logger.info(e.getMessage());
  133. }
  134. String chargePerson = entity.getChargePersons();
  135. TSUser user = systemService.getEntity(TSUser.class, chargePerson);
  136. if(user!=null) entity.setChargePersonsRealname(user.getRealName());
  137. }
  138. }
  139. dataGrid.setResults(list);
  140. TagUtil.datagrid(response, dataGrid);
  141. }
  142. /**
  143. * 删除往来单位管理表
  144. *
  145. * @return
  146. */
  147. @RequestMapping(params = "doDel")
  148. @ResponseBody
  149. public AjaxJson doDel(RelatedUnitsEntity relatedUnits, HttpServletRequest request) {
  150. AjaxJson j = new AjaxJson();
  151. relatedUnits = systemService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId());
  152. String message = "单位管理表删除成功";
  153. try{
  154. message = "单位:" + relatedUnits.getUnitName() + "删除成功";
  155. relatedUnits.setDeleteFlag(Globals.Delete_Forbidden.toString());
  156. relatedUnitsService.updateEntitie(relatedUnits);
  157. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  158. }catch(Exception e){
  159. e.printStackTrace();
  160. message = "单位管理表删除失败";
  161. throw new BusinessException(e.getMessage());
  162. }
  163. j.setMsg(message);
  164. return j;
  165. }
  166. /**
  167. * 批量删除往来单位管理表
  168. *
  169. * @return
  170. */
  171. @RequestMapping(params = "doBatchDel")
  172. @ResponseBody
  173. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  174. AjaxJson j = new AjaxJson();
  175. String message = "单位管理表删除成功";
  176. try{
  177. for(String id:ids.split(",")){
  178. RelatedUnitsEntity relatedUnits = systemService.getEntity(RelatedUnitsEntity.class,
  179. id
  180. );
  181. relatedUnitsService.delMain(relatedUnits);
  182. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  183. }
  184. }catch(Exception e){
  185. e.printStackTrace();
  186. message = "单位管理表删除失败";
  187. throw new BusinessException(e.getMessage());
  188. }
  189. j.setMsg(message);
  190. return j;
  191. }
  192. /**
  193. * 自定义按钮-[停用仓库]业务
  194. * @return
  195. */
  196. @RequestMapping(params = "lock")
  197. @ResponseBody
  198. public AjaxJson lock(RelatedUnitsEntity relatedUnits, HttpServletRequest request) {
  199. String message = null;
  200. AjaxJson j = new AjaxJson();
  201. message = "停用单位成功";
  202. String lockValue=request.getParameter("lockvalue");
  203. RelatedUnitsEntity t = relatedUnitsService.get(RelatedUnitsEntity.class, relatedUnits.getId());
  204. try{
  205. t.setStatus(lockValue);
  206. relatedUnitsService.updateEntitie(t);
  207. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  208. }catch(Exception e){
  209. e.printStackTrace();
  210. message = "停用单位失败";
  211. }
  212. j.setMsg(message);
  213. return j;
  214. }
  215. /**
  216. * 自定义按钮-[停用仓库]业务
  217. * @return
  218. */
  219. @RequestMapping(params = "unLock")
  220. @ResponseBody
  221. public AjaxJson unLock(RelatedUnitsEntity relatedUnits, HttpServletRequest request) {
  222. String message = null;
  223. AjaxJson j = new AjaxJson();
  224. message = "启用单位成功";
  225. String lockValue=request.getParameter("lockvalue");
  226. RelatedUnitsEntity t = relatedUnitsService.get(RelatedUnitsEntity.class, relatedUnits.getId());
  227. try{
  228. t.setStatus(lockValue);
  229. relatedUnitsService.updateEntitie(t);
  230. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  231. }catch(Exception e){
  232. e.printStackTrace();
  233. message = "启用单位失败";
  234. }
  235. j.setMsg(message);
  236. return j;
  237. }
  238. /**
  239. * 添加往来单位管理表
  240. *
  241. * @return
  242. */
  243. @RequestMapping(params = "doAdd")
  244. @ResponseBody
  245. public AjaxJson doAdd(RelatedUnitsEntity relatedUnits,RelatedUnitsPage relatedUnitsPage, HttpServletRequest request) {
  246. AjaxJson j = new AjaxJson();
  247. String message = "添加成功";
  248. String unitName = relatedUnits.getUnitName();
  249. CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class);
  250. cq.eq("unitName", unitName);
  251. cq.add();
  252. List<RelatedUnitsEntity> listInDB = systemService.getListByCriteriaQuery(cq, false);
  253. if(listInDB != null && listInDB.size()>0) {
  254. j.setSuccess(false);
  255. message = "不能重复添加供应商";
  256. return j;
  257. }
  258. List<RelatedUnitsContactsEntity> relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList();
  259. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList();
  260. try{
  261. relatedUnits.setUnitCode(SaltUtil.randomSalt(4));
  262. relatedUnits.setStatus(Globals.Enable_Normal);// 启用
  263. relatedUnits.setDeleteFlag(Globals.Delete_Normal.toString());// 正常
  264. if(relatedUnits.getEarlyPayment() != null && relatedUnits.getEarlyPayment() > 0){
  265. relatedUnits.setPayableBalance(relatedUnits.getEarlyPayment());
  266. }
  267. if(relatedUnits.getInitialReceivable() != null && relatedUnits.getInitialReceivable() > 0){
  268. relatedUnits.setAmountReceivable(relatedUnits.getInitialReceivable());
  269. }
  270. relatedUnitsService.addMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList);
  271. tSysFileService.updateBusiId(relatedUnits.getAttachment(), relatedUnits.getId());
  272. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  273. }catch(Exception e){
  274. e.printStackTrace();
  275. message = "往来单位管理表添加失败";
  276. throw new BusinessException(e.getMessage());
  277. }
  278. j.setMsg(message);
  279. return j;
  280. }
  281. /**
  282. * 更新往来单位管理表
  283. *
  284. * @return
  285. */
  286. @RequestMapping(params = "doUpdate")
  287. @ResponseBody
  288. public AjaxJson doUpdate(RelatedUnitsEntity relatedUnits,RelatedUnitsPage relatedUnitsPage, HttpServletRequest request) {
  289. List<RelatedUnitsContactsEntity> relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList();
  290. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList();
  291. AjaxJson j = new AjaxJson();
  292. String message = "更新成功";
  293. try{
  294. relatedUnitsService.updateMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList);
  295. tSysFileService.updateBusiId(relatedUnits.getAttachment(), relatedUnits.getId());
  296. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  297. }catch(Exception e){
  298. e.printStackTrace();
  299. message = "更新往来单位管理表失败";
  300. throw new BusinessException(e.getMessage());
  301. }
  302. j.setMsg(message);
  303. return j;
  304. }
  305. /**
  306. * 往来单位管理表新增页面跳转
  307. *
  308. * @return
  309. */
  310. @RequestMapping(params = "goAdd")
  311. public ModelAndView goAdd(RelatedUnitsEntity relatedUnits, HttpServletRequest req) {
  312. if (StringUtil.isNotEmpty(relatedUnits.getId())) {
  313. relatedUnits = relatedUnitsService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId());
  314. req.setAttribute("relatedUnitsPage", relatedUnits);
  315. }
  316. return new ModelAndView("cn/com/lzt/relatedunits/relatedUnits-add");
  317. }
  318. /**
  319. * 往来单位管理表编辑页面跳转
  320. *
  321. * @return
  322. */
  323. @RequestMapping(params = "goUpdate")
  324. public ModelAndView goUpdate(RelatedUnitsEntity relatedUnits, HttpServletRequest req) {
  325. String isView = req.getParameter("viewFlag");
  326. req.setAttribute("viewFlag", isView);
  327. if (StringUtil.isNotEmpty(relatedUnits.getId())) {
  328. relatedUnits = relatedUnitsService.getEntity(RelatedUnitsEntity.class, relatedUnits.getId());
  329. setReferName(req,relatedUnits);
  330. Object id1 = relatedUnits.getId();
  331. //===================================================================================
  332. //查询-附加信息
  333. String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  334. try{
  335. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1);
  336. if(relatedUnitsExtrainfoEntityList != null && relatedUnitsExtrainfoEntityList.size()>0) {
  337. req.setAttribute("relatedUnitsExtrainfo", relatedUnitsExtrainfoEntityList.get(0));
  338. }
  339. }catch(Exception e){
  340. logger.info(e.getMessage());
  341. }
  342. String load = req.getParameter("load");
  343. req.setAttribute("load", load);
  344. req.setAttribute("relatedUnitsPage", relatedUnits);
  345. }
  346. return new ModelAndView("cn/com/lzt/relatedunits/relatedUnits-update");
  347. }
  348. // 获取参照名称
  349. public void setReferName(HttpServletRequest req, RelatedUnitsEntity relatedUnits) {
  350. TSBaseUser user = systemService.findUniqueByProperty(TSBaseUser.class, "id", relatedUnits.getChargePersons());
  351. // 负责人
  352. String handlerPersonName="";
  353. if (user != null) {
  354. handlerPersonName= user.getRealName();
  355. req.setAttribute("realName", handlerPersonName);
  356. }
  357. }
  358. /**
  359. * 加载明细列表[联系人信息]
  360. *
  361. * @return
  362. */
  363. @RequestMapping(params = "relatedUnitsContactsList")
  364. public ModelAndView relatedUnitsContactsList(RelatedUnitsEntity relatedUnits, HttpServletRequest req) {
  365. //===================================================================================
  366. //获取参数
  367. Object id0 = relatedUnits.getId();
  368. //===================================================================================
  369. //查询-联系人信息
  370. String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  371. try{
  372. List<RelatedUnitsContactsEntity> relatedUnitsContactsEntityList = systemService.findHql(hql0,id0);
  373. req.setAttribute("relatedUnitsContactsList", relatedUnitsContactsEntityList);
  374. }catch(Exception e){
  375. logger.info(e.getMessage());
  376. }
  377. return new ModelAndView("cn/com/lzt/relatedunitscontacts/relatedUnitsContactsList");
  378. }
  379. /**
  380. * 加载明细列表[附加信息]
  381. *
  382. * @return
  383. */
  384. @RequestMapping(params = "relatedUnitsExtrainfoList")
  385. public ModelAndView relatedUnitsExtrainfoList(RelatedUnitsEntity relatedUnits, HttpServletRequest req) {
  386. //===================================================================================
  387. //获取参数
  388. Object id1 = relatedUnits.getId();
  389. //===================================================================================
  390. //查询-附加信息
  391. String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  392. try{
  393. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1);
  394. req.setAttribute("relatedUnitsExtrainfoList", relatedUnitsExtrainfoEntityList);
  395. }catch(Exception e){
  396. logger.info(e.getMessage());
  397. }
  398. return new ModelAndView("cn/com/lzt/relatedunitsextrainfo/relatedUnitsExtrainfoList");
  399. }
  400. @RequestMapping(params = "relatedUnitsAttachment")
  401. public ModelAndView relatedUnitsAttachment(RelatedUnitsEntity relatedUnits, HttpServletRequest req) {
  402. try{
  403. req.setAttribute("relatedUnitsPage", relatedUnits);
  404. String load = req.getParameter("load");
  405. req.setAttribute("load", load);
  406. }catch(Exception e){
  407. logger.info(e.getMessage());
  408. }
  409. return new ModelAndView("cn/com/lzt/relatedunits/relatedUnitsAttachment");
  410. }
  411. /**
  412. * 导出excel
  413. *
  414. * @param request
  415. * @param response
  416. */
  417. @RequestMapping(params = "exportXls")
  418. public String exportXls(RelatedUnitsEntity relatedUnits,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) {
  419. CriteriaQuery cq = new CriteriaQuery(RelatedUnitsEntity.class, dataGrid);
  420. //查询条件组装器
  421. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, relatedUnits);
  422. try{
  423. //自定义追加查询条件
  424. }catch (Exception e) {
  425. throw new BusinessException(e.getMessage());
  426. }
  427. cq.add();
  428. List<RelatedUnitsEntity> list=this.relatedUnitsService.getListByCriteriaQuery(cq, false);
  429. List<RelatedUnitsPage> pageList=new ArrayList<RelatedUnitsPage>();
  430. if(list!=null&&list.size()>0){
  431. for(RelatedUnitsEntity entity:list){
  432. try{
  433. RelatedUnitsPage page=new RelatedUnitsPage();
  434. MyBeanUtils.copyBeanNotNull2Bean(entity,page);
  435. Object id0 = entity.getId();
  436. String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  437. List<RelatedUnitsContactsEntity> relatedUnitsContactsEntityList = systemService.findHql(hql0,id0);
  438. page.setRelatedUnitsContactsList(relatedUnitsContactsEntityList);
  439. Object id1 = entity.getId();
  440. String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  441. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,id1);
  442. page.setRelatedUnitsExtrainfoList(relatedUnitsExtrainfoEntityList);
  443. pageList.add(page);
  444. }catch(Exception e){
  445. logger.info(e.getMessage());
  446. }
  447. }
  448. }
  449. map.put(NormalExcelConstants.FILE_NAME,"往来单位管理表");
  450. map.put(NormalExcelConstants.CLASS,RelatedUnitsPage.class);
  451. map.put(NormalExcelConstants.PARAMS,new ExportParams("往来单位管理表列表", "导出人:Jeecg",
  452. "导出信息"));
  453. map.put(NormalExcelConstants.DATA_LIST,pageList);
  454. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  455. }
  456. /**
  457. * 通过excel导入数据
  458. * @param request
  459. * @param
  460. * @return
  461. */
  462. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  463. @ResponseBody
  464. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  465. AjaxJson j = new AjaxJson();
  466. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  467. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  468. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  469. MultipartFile file = entity.getValue();// 获取上传文件对象
  470. ImportParams params = new ImportParams();
  471. params.setTitleRows(2);
  472. params.setHeadRows(2);
  473. params.setNeedSave(true);
  474. try {
  475. List<RelatedUnitsPage> list = ExcelImportUtil.importExcel(file.getInputStream(), RelatedUnitsPage.class, params);
  476. RelatedUnitsEntity entity1=null;
  477. for (RelatedUnitsPage page : list) {
  478. entity1=new RelatedUnitsEntity();
  479. MyBeanUtils.copyBeanNotNull2Bean(page,entity1);
  480. relatedUnitsService.addMain(entity1, page.getRelatedUnitsContactsList(),page.getRelatedUnitsExtrainfoList());
  481. }
  482. j.setMsg("文件导入成功!");
  483. } catch (Exception e) {
  484. j.setMsg("文件导入失败!");
  485. logger.error(ExceptionUtil.getExceptionMessage(e));
  486. }finally{
  487. try {
  488. file.getInputStream().close();
  489. } catch (IOException e) {
  490. e.printStackTrace();
  491. }
  492. }
  493. }
  494. return j;
  495. }
  496. /**
  497. * 导出excel 使模板
  498. */
  499. @RequestMapping(params = "exportXlsByT")
  500. public String exportXlsByT(ModelMap map) {
  501. map.put(NormalExcelConstants.FILE_NAME,"往来单位管理表");
  502. map.put(NormalExcelConstants.CLASS,RelatedUnitsPage.class);
  503. map.put(NormalExcelConstants.PARAMS,new ExportParams("往来单位管理表列表", "导出人:"+ ResourceUtil.getSessionUserName().getRealName(),
  504. "导出信息"));
  505. map.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  506. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  507. }
  508. /**
  509. * 导入功能跳转
  510. *
  511. * @return
  512. */
  513. @RequestMapping(params = "upload")
  514. public ModelAndView upload(HttpServletRequest req) {
  515. req.setAttribute("controller_name", "relatedUnitsController");
  516. return new ModelAndView("common/upload/pub_excel_upload");
  517. }
  518. @RequestMapping(method = RequestMethod.GET)
  519. @ResponseBody
  520. public List<RelatedUnitsEntity> list() {
  521. List<RelatedUnitsEntity> listRelatedUnitss=relatedUnitsService.getList(RelatedUnitsEntity.class);
  522. return listRelatedUnitss;
  523. }
  524. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  525. @ResponseBody
  526. public ResponseEntity<?> get(@PathVariable("id") String id) {
  527. RelatedUnitsEntity task = relatedUnitsService.get(RelatedUnitsEntity.class, id);
  528. if (task == null) {
  529. return new ResponseEntity(HttpStatus.NOT_FOUND);
  530. }
  531. return new ResponseEntity(task, HttpStatus.OK);
  532. }
  533. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  534. @ResponseBody
  535. public ResponseEntity<?> create(@RequestBody RelatedUnitsPage relatedUnitsPage, UriComponentsBuilder uriBuilder) {
  536. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  537. Set<ConstraintViolation<RelatedUnitsPage>> failures = validator.validate(relatedUnitsPage);
  538. if (!failures.isEmpty()) {
  539. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  540. }
  541. //保存
  542. List<RelatedUnitsContactsEntity> relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList();
  543. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList();
  544. RelatedUnitsEntity relatedUnits = new RelatedUnitsEntity();
  545. try{
  546. MyBeanUtils.copyBeanNotNull2Bean(relatedUnits,relatedUnitsPage);
  547. }catch(Exception e){
  548. logger.info(e.getMessage());
  549. }
  550. relatedUnitsService.addMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList);
  551. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  552. String id = relatedUnitsPage.getId();
  553. URI uri = uriBuilder.path("/rest/relatedUnitsController/" + id).build().toUri();
  554. HttpHeaders headers = new HttpHeaders();
  555. headers.setLocation(uri);
  556. return new ResponseEntity(headers, HttpStatus.CREATED);
  557. }
  558. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  559. public ResponseEntity<?> update(@RequestBody RelatedUnitsPage relatedUnitsPage) {
  560. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  561. Set<ConstraintViolation<RelatedUnitsPage>> failures = validator.validate(relatedUnitsPage);
  562. if (!failures.isEmpty()) {
  563. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  564. }
  565. //保存
  566. List<RelatedUnitsContactsEntity> relatedUnitsContactsList = relatedUnitsPage.getRelatedUnitsContactsList();
  567. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoList = relatedUnitsPage.getRelatedUnitsExtrainfoList();
  568. RelatedUnitsEntity relatedUnits = new RelatedUnitsEntity();
  569. try{
  570. MyBeanUtils.copyBeanNotNull2Bean(relatedUnits,relatedUnitsPage);
  571. }catch(Exception e){
  572. logger.info(e.getMessage());
  573. }
  574. relatedUnitsService.updateMain(relatedUnits, relatedUnitsContactsList,relatedUnitsExtrainfoList);
  575. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  576. return new ResponseEntity(HttpStatus.NO_CONTENT);
  577. }
  578. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  579. @ResponseStatus(HttpStatus.NO_CONTENT)
  580. public void delete(@PathVariable("id") String id) {
  581. RelatedUnitsEntity relatedUnits = relatedUnitsService.get(RelatedUnitsEntity.class, id);
  582. relatedUnitsService.delMain(relatedUnits);
  583. }
  584. @RequestMapping(params = "relatedUnitsExtrainfo")
  585. @ResponseBody
  586. public Object relatedUnitsExtrainfo(String relatedUnitsId, HttpServletRequest req) {
  587. RelatedUnitsExtrainfoEntity extrainfoEntity =null;
  588. RelatedUnitsContactsEntity contactsEntity=null;
  589. //查询出数据库的明细数据-联系人信息
  590. String hql0 = "from RelatedUnitsContactsEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  591. List<RelatedUnitsContactsEntity> relatedUnitsContactsEntityList = systemService.findHql(hql0,relatedUnitsId);
  592. if(relatedUnitsContactsEntityList.size()>0){
  593. contactsEntity = relatedUnitsContactsEntityList.get(0);
  594. }
  595. //查询-附加信息
  596. String hql1 = "from RelatedUnitsExtrainfoEntity where 1 = 1 AND rELATED_UNITS_ID =? ";
  597. List<RelatedUnitsExtrainfoEntity> relatedUnitsExtrainfoEntityList = systemService.findHql(hql1,relatedUnitsId);
  598. if(relatedUnitsExtrainfoEntityList.size()>0){
  599. extrainfoEntity = relatedUnitsExtrainfoEntityList.get(0);
  600. }
  601. Map<String,Object> map = new HashMap<>();
  602. if(extrainfoEntity!=null) {
  603. map.put("depositBank", extrainfoEntity.getDepositBank());
  604. map.put("unitname", extrainfoEntity.getUnitname());
  605. map.put("account", extrainfoEntity.getAccount());
  606. }
  607. if(contactsEntity!=null){
  608. map.put("contactName", contactsEntity.getName());
  609. map.put("telPhone", contactsEntity.getTelphone());
  610. }
  611. return map;
  612. }
  613. // 下载所有附件附件
  614. @RequestMapping(params = "downloadAll")
  615. public void downloadAll(String id, HttpServletRequest request, HttpServletResponse response) {
  616. RelatedUnitsEntity relatedunits = systemService.get(RelatedUnitsEntity.class, id);
  617. String fileInfoSql = "select file_url,file_name,busi_id\n" + "from t_sys_file file "
  618. + "where busi_id = ?";
  619. List<Map<String, Object>> fileInfo = systemService.findForJdbc(fileInfoSql, id);
  620. if (fileInfo.size() == 0) {
  621. return;
  622. }
  623. zipfiles(fileInfo, relatedunits.getUnitName(), request, response);
  624. }
  625. private void zipfiles(List<Map<String,Object>> fileInfo,String unitname,HttpServletRequest request, HttpServletResponse response) {
  626. InputStream inputStream = null;
  627. OutputStream outputStream = null;
  628. ZipOutputStream zipOutputStream = null;
  629. String timenow = "";
  630. SimpleDateFormat formater = new SimpleDateFormat("yyMMddHHmmss_sss");
  631. try {
  632. timenow = formater.format(new Date());
  633. } catch (Exception e) {
  634. }
  635. OSSClient ossClient = null;
  636. try {
  637. outputStream=response.getOutputStream();
  638. String codedFileName = unitname+"_附件下载_"+timenow+".zip";
  639. if (isIE(request)) {
  640. codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
  641. } else {
  642. codedFileName = new String(codedFileName.getBytes("UTF-8"), "ISO-8859-1");
  643. }
  644. zipOutputStream = new ZipOutputStream(outputStream);
  645. response.setContentType("application/octet-stream ");
  646. response.setHeader("Connection", "close"); // 表示不能用浏览器直接打开
  647. response.setHeader("Accept-Ranges", "bytes");// 告诉客户端允许断点续传多线程连接下载
  648. response.setHeader("Content-Disposition",
  649. "attachment;filename=" + codedFileName);
  650. response.setCharacterEncoding("UTF-8");
  651. ossClient = new OSSClient(CustomerConstant.ENDPOINT, CustomerConstant.ACCESSKEY_ID, CustomerConstant.ACCESSKEY_SECRET);
  652. for (Map<String, Object> map : fileInfo) {
  653. String fileUrl = map.get("file_url").toString();
  654. String fileName = unitname+ "_"+map.get("file_name").toString();
  655. OSSObject ossObject = ossClient.getObject(CustomerConstant.BUCKETNAME, fileUrl);
  656. inputStream = new BufferedInputStream(ossObject.getObjectContent());
  657. ZipEntry entry = new ZipEntry(fileName);
  658. zipOutputStream.putNextEntry(entry);
  659. byte[] buf = new byte[1024];
  660. int len;
  661. while ((len = inputStream.read(buf)) > 0) {
  662. zipOutputStream.write(buf, 0, len);
  663. }
  664. }
  665. // 关闭client
  666. ossClient.shutdown();
  667. zipOutputStream.flush();
  668. } catch (Exception e) {
  669. logger.info("--通过流的方式获取文件异常--" + e.getMessage());
  670. }finally{
  671. try {
  672. if(zipOutputStream != null) {
  673. zipOutputStream.close();
  674. }
  675. if(inputStream != null){
  676. inputStream.close();
  677. }
  678. if(outputStream != null){
  679. outputStream.close();
  680. }
  681. } catch (IOException e) {
  682. org.jeecgframework.core.util.LogUtil.error(e.getMessage());
  683. }
  684. }
  685. }
  686. boolean isIE(HttpServletRequest request) {
  687. return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true : false;
  688. }
  689. }