ApprovalController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. package com.iamberry.rst.controllers.approval;
  2. import com.auth0.jwt.internal.org.apache.commons.io.FileUtils;
  3. import com.fasterxml.jackson.core.JsonProcessingException;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5. import com.iamberry.rst.core.approval.*;
  6. import com.iamberry.rst.core.page.PageRequest;
  7. import com.iamberry.rst.core.page.PagedResult;
  8. import com.iamberry.rst.core.sys.Admin;
  9. import com.iamberry.rst.faces.approval.ApplyPickService;
  10. import com.iamberry.rst.faces.approval.ApprovalOrderService;
  11. import com.iamberry.rst.faces.approval.ApprovalProductionService;
  12. import com.iamberry.rst.faces.approval.ApprovalTaskService;
  13. import com.iamberry.rst.faces.sys.SysService;
  14. import com.iamberry.wechat.core.entity.WechatUtils;
  15. import com.iamberry.wechat.file.FileType;
  16. import com.iamberry.wechat.tools.ResponseJson;
  17. import com.iamberry.wechat.tools.ResultInfo;
  18. import net.sf.json.JSONArray;
  19. import net.sf.json.JSONObject;
  20. import org.activiti.bpmn.model.*;
  21. import org.activiti.bpmn.model.Process;
  22. import org.activiti.engine.RepositoryService;
  23. import org.activiti.engine.repository.Deployment;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Controller;
  26. import org.springframework.web.bind.annotation.RequestMapping;
  27. import org.springframework.web.bind.annotation.RequestParam;
  28. import org.springframework.web.bind.annotation.ResponseBody;
  29. import org.springframework.web.context.ContextLoader;
  30. import org.springframework.web.context.WebApplicationContext;
  31. import org.springframework.web.multipart.commons.CommonsMultipartFile;
  32. import sun.misc.BASE64Decoder;
  33. import javax.servlet.ServletContext;
  34. import javax.servlet.http.HttpServletRequest;
  35. import java.io.*;
  36. import java.text.ParseException;
  37. import java.text.SimpleDateFormat;
  38. import java.util.*;
  39. /**
  40. * Created by Administrator on 2018/10/9.
  41. */
  42. @Controller
  43. /*@RequestMapping("/approval")*/
  44. @RequestMapping("/wechat/approval")
  45. public class ApprovalController {
  46. @Autowired
  47. private ApprovalOrderService approvalOrderService;
  48. @Autowired
  49. private ApprovalTaskService approvalTaskService;
  50. @Autowired
  51. private SysService sysService;
  52. @Autowired
  53. private ApplyPickService applyPickService;
  54. @Autowired
  55. private ApprovalProductionService approvalProductionService;
  56. @Autowired
  57. private RepositoryService repositoryService;
  58. @SuppressWarnings("restriction")
  59. private BASE64Decoder decoder = new BASE64Decoder();
  60. /**
  61. * 新增审批信息
  62. * @param request
  63. * @param approvalProduction
  64. * @param productionItems
  65. * @return
  66. */
  67. @ResponseBody
  68. @RequestMapping(value = "/addApproval")
  69. public ResponseJson addApproval(HttpServletRequest request, ApprovalProduction approvalProduction, String productionItems,String productionContracts) throws ParseException {
  70. ResponseJson rj =new ResponseJson(200, "添加成功", 200);
  71. if (approvalProduction == null || productionItems == null) {
  72. return ResponseJson.getFAILURE();
  73. }
  74. //获取openid,根据openid查询当前登录人信息
  75. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  76. /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
  77. //获取审批任务id
  78. Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(1);
  79. String deliveryDate = request.getParameter("deliveryDate");
  80. String inspectionTime = request.getParameter("inspectionDate");
  81. if(deliveryDate == null ){
  82. return ResponseJson.getFAILURE();
  83. }
  84. if(inspectionTime == null ){
  85. return ResponseJson.getFAILURE();
  86. }
  87. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  88. approvalProduction.setProductionDeliveryDate(format.parse(deliveryDate));
  89. approvalProduction.setInspectionTime(format.parse(inspectionTime));
  90. //封装生产审批产品项
  91. List<ApprovalProductionItem> listApprovalProductionItem = new ArrayList<ApprovalProductionItem>();
  92. JSONArray jsonProductionItems = JSONArray.fromObject(productionItems);
  93. for (int i = 0; i < jsonProductionItems.size(); i++) {
  94. JSONObject orderItem = jsonProductionItems.getJSONObject(i);
  95. //添加产品项内容
  96. ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem();
  97. approvalProductionItem.setItemBrandName(orderItem.getString("itemBrandName"));
  98. approvalProductionItem.setItemProductName(orderItem.getString("itemProductName"));
  99. approvalProductionItem.setItemColorName(orderItem.getString("itemColorName"));
  100. approvalProductionItem.setItemProductNum(orderItem.getInt("itemProductNum"));
  101. approvalProductionItem.setItemProductModel(orderItem.getString("itemProductModel"));
  102. approvalProductionItem.setItemProductUnit(orderItem.getString("itemProductUnit"));
  103. approvalProductionItem.setItemProductBoxNumber(orderItem.getInt("itemProductBoxNumber"));
  104. approvalProductionItem.setItemShouldStorage(orderItem.getInt("itemProductNum"));
  105. approvalProductionItem.setItemActualStorage(0);
  106. approvalProductionItem.setItemLackNumber(orderItem.getInt("itemProductNum"));
  107. approvalProductionItem.setItemCanpickNumber(0);
  108. if (orderItem.containsKey("itemExternalModel")) {
  109. approvalProductionItem.setItemExternalModel(orderItem.getString("itemExternalModel"));
  110. }
  111. listApprovalProductionItem.add(approvalProductionItem);
  112. }
  113. //封装生产审批合同
  114. List<ApprovalProductionContract> listProductionContract = new ArrayList<ApprovalProductionContract>();
  115. if(productionContracts != null){
  116. JSONArray jsonproductionContracts = JSONArray.fromObject(productionContracts);
  117. for (int i = 0; i < jsonproductionContracts.size(); i++) {
  118. JSONObject contract = jsonproductionContracts.getJSONObject(i);
  119. ApprovalProductionContract contractInfo = new ApprovalProductionContract();
  120. contractInfo.setContractUrl(contract.getString("contractUrl"));
  121. contractInfo.setContractType(contract.getString("contractType"));
  122. listProductionContract.add(contractInfo);
  123. }
  124. }
  125. boolean returnValue = approvalOrderService.insertApprovalProduction(approvalProduction,listApprovalProductionItem,listProductionContract,taskinfo,openId);
  126. if(!returnValue){
  127. return ResponseJson.getFAILURE();
  128. }
  129. return rj;
  130. }
  131. /**
  132. * 上传合同图片
  133. * 通过流的方式上传文件
  134. * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象
  135. */
  136. @ResponseBody
  137. @RequestMapping("/fileUpload")
  138. public ResponseJson fileUpload(HttpServletRequest request,@RequestParam("file") CommonsMultipartFile file) throws IOException {
  139. ResponseJson responseJson = new ResponseJson();
  140. System.out.println("fileName:"+file.getOriginalFilename());
  141. //获取项目根目录
  142. WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
  143. ServletContext servletContext = webApplicationContext.getServletContext();
  144. String realPath = servletContext.getRealPath(ResultInfo.CONTRACT_IMAGE);
  145. String imgUrl = new Date().getTime()+file.getOriginalFilename();
  146. try {
  147. //获取输出流
  148. OutputStream os=new FileOutputStream(realPath+imgUrl);
  149. //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
  150. InputStream is=file.getInputStream();
  151. byte[] bts = new byte[1024];
  152. //一个一个字节的读取并写入
  153. while(is.read(bts)!=-1)
  154. {
  155. os.write(bts);
  156. }
  157. os.flush();
  158. os.close();
  159. is.close();
  160. } catch (FileNotFoundException e) {
  161. // TODO Auto-generated catch block
  162. e.printStackTrace();
  163. }
  164. responseJson.setReturnCode(200);
  165. responseJson.addResponseKeyValue("imgUrl",ResultInfo.CONTRACT_IMAGE+imgUrl);
  166. return responseJson;
  167. }
  168. /**
  169. * base图片上传
  170. * @throws IOException
  171. */
  172. @SuppressWarnings({ "deprecation", "restriction" })
  173. @ResponseBody
  174. @RequestMapping("/baseFileUpload")
  175. public ResponseJson baseFileUpload(HttpServletRequest req) throws IOException{
  176. ResponseJson responseJson = new ResponseJson();
  177. //取到前台传过来的 base64图片 并创建要存放在项目中的路径
  178. WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
  179. ServletContext servletContext = webApplicationContext.getServletContext();
  180. String imgFilePath = servletContext.getRealPath(ResultInfo.CONTRACT_IMAGE);
  181. try {
  182. isExitsPath(imgFilePath);
  183. } catch (InterruptedException e) {
  184. e.printStackTrace();
  185. }
  186. //创建分享对象 并存入数据库
  187. //String postParams = StrUtils.getPostParamsStr(req); //data:image/png;base64,iVBORw0
  188. String postParams = req.getParameter("file");
  189. String[] shareImgUrlArr = org.apache.commons.lang3.StringUtils.split(postParams, ",");
  190. String imgUrl = "";
  191. HashMap<String, String> map = new HashMap<String, String>();
  192. if(shareImgUrlArr != null && shareImgUrlArr.length > 0){
  193. // 防止内存溢出
  194. String suffixName = new String (shareImgUrlArr[0].split(";")[0].split("/")[1]);
  195. String shareImgUrl = new String (shareImgUrlArr[1]);
  196. // 通过文件头判断后缀
  197. byte [] b = new byte[28];
  198. shareImgUrl.getBytes(0, 27, b, 0);
  199. String temp = new String(b);
  200. b = decoder.decodeBuffer(temp);
  201. // 二进制转换文件头
  202. String type = null;
  203. String fileHead = byte2hex(b);
  204. fileHead = fileHead.toUpperCase();
  205. // 获取系统支持的文件类型,如果不支持,返回默认的图片
  206. FileType[] fileTypes = FileType.values();
  207. for (FileType fileType : fileTypes) {
  208. if (fileHead.startsWith(fileType.getValue())) {
  209. type = fileType.getSuffix();
  210. break;
  211. }
  212. }
  213. if (type == null) {
  214. System.err.println("上传图片异常..." + fileHead);
  215. } else {
  216. String fileName = getFileName(suffixName, type);
  217. boolean flag = generateImage(shareImgUrl, imgFilePath + "/" + fileName);
  218. if(flag){
  219. responseJson.setReturnCode(200);
  220. responseJson.addResponseKeyValue("imgUrl","//rst.iamberry.com/"+ResultInfo.CONTRACT_IMAGE+fileName);
  221. }else{
  222. responseJson.setReturnCode(500);
  223. }
  224. }
  225. }else{
  226. responseJson.setReturnCode(500);
  227. }
  228. //返回值拼凑
  229. /*String requurl = req.getContextPath();//获取web项目的路径*/
  230. return responseJson;
  231. }
  232. /**
  233. * 判断路径是否存在 不存在则创建
  234. * create date 2016年6月1日
  235. * @author 穆再兴
  236. * @param path
  237. * @return
  238. * @throws InterruptedException
  239. */
  240. public boolean isExitsPath(String path)throws InterruptedException{
  241. String [] paths=path.split("/");
  242. StringBuilder fullPath=new StringBuilder();
  243. for (int i = 0; i < paths.length; i++) {
  244. fullPath.append(paths[i]).append("/");
  245. File file=new File(fullPath.toString());
  246. if(!file.exists()){
  247. file.mkdir();
  248. }
  249. }
  250. File file=new File(fullPath.toString());//目录全路径
  251. if (!file.exists()) {
  252. return true;
  253. }else{
  254. return false;
  255. }
  256. }
  257. public static String byte2hex(byte[] b) { //一个字节的数,
  258. // 转成16进制字符串
  259. String hs = "";
  260. String tmp = "";
  261. for (int n = 0; n < b.length; n++) {
  262. //整数转成十六进制表示
  263. tmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
  264. if (tmp.length() == 1) {
  265. hs = hs + "0" + tmp;
  266. } else {
  267. hs = hs + tmp;
  268. }
  269. }
  270. tmp = null;
  271. return hs;
  272. }
  273. /**
  274. * 获取 file 的文件名
  275. * create date 2016年6月1日
  276. * @author 穆再兴
  277. * @param
  278. * @param
  279. * @return
  280. */
  281. private String getFileName(String suffixName, String type){
  282. long time = new Date().getTime();
  283. Long timeStr = new Long(time);
  284. return timeStr + "." + type;
  285. }
  286. /**
  287. * 对字节数组字符串进行Base64解码生成图片 并存入对应的路径
  288. * create date 2016年6月1日
  289. * @author 穆再兴
  290. * @param imgStr Base64字符串
  291. * @param imgFilePath 存入的路径
  292. * @return
  293. */
  294. private boolean generateImage(String imgStr, String imgFilePath) {
  295. if (imgStr == null) {return false;}// 图像数据为空
  296. try {
  297. // Base64解码
  298. @SuppressWarnings("restriction")
  299. byte[] bytes = decoder.decodeBuffer(imgStr);
  300. for (int i = 0; i < bytes.length; ++i) {
  301. if (bytes[i] < 0) {// 调整异常数据
  302. bytes[i] += 256;
  303. }
  304. }
  305. // 生成图片
  306. File file = new File(imgFilePath);
  307. FileUtils.writeByteArrayToFile(file, bytes);
  308. return true;
  309. } catch (Exception e) {
  310. e.printStackTrace();
  311. return false;
  312. }
  313. }
  314. /**
  315. * 查询我发起的/我审核的列表
  316. * @param approvalInfo
  317. * @param pageSize
  318. * @param pageNO
  319. * @param totalNum
  320. * @param selectType 1.我发起的 2.我审核的 3.仓库确认
  321. * @param
  322. * @return
  323. * @throws Exception
  324. */
  325. @ResponseBody
  326. @RequestMapping(value = "/approvalInfoList")
  327. public ResponseJson listApprovalInfo(HttpServletRequest request,
  328. ApprovalInfo approvalInfo,Integer selectType,
  329. @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
  330. @RequestParam(value = "pageNo", defaultValue = "1", required = false) Integer pageNO,
  331. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
  332. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  333. //获取openid,根据openid查询当前登录人信息
  334. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  335. /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
  336. Admin admin = sysService.getByOpenid(openId);
  337. if(admin == null){
  338. return new ResponseJson(200, "未查询到登录人信息", 500);
  339. }
  340. if(selectType != null){
  341. if(selectType == 1){//我发起的
  342. approvalInfo.setAdminId(admin.getAdminId());
  343. }else if(selectType == 2){//我审核的
  344. approvalInfo.setApprovalAdminId(admin.getAdminId());
  345. }
  346. if(selectType == 3){
  347. //判断是否是仓库人员
  348. AdminApprovalAuthority adminApprovalAuthority = approvalOrderService.getApprovalAuthority(admin.getAdminId());
  349. if(adminApprovalAuthority.getIsWarehouse() == 2){
  350. List<ApprovalInfo> list = new ArrayList<>();
  351. return new ResponseJson(200, "非仓库人员不得查询", 501).addResponseKeyValue("approvalList",list);
  352. }
  353. }
  354. }
  355. String stareDate = request.getParameter("stareDate");
  356. if(stareDate != null ){
  357. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  358. approvalInfo.setApprovalCreateTime(format.parse(stareDate));
  359. }
  360. PagedResult<ApprovalInfo> pagedResult = approvalOrderService.listApprovalInfo(pageNO, pageSize,approvalInfo,totalNum == null);
  361. if (totalNum != 0) {
  362. pagedResult.setTotal(totalNum);
  363. }
  364. rj.addResponseKeyValue("total", pagedResult.getTotal());
  365. rj.addResponseKeyValue("approvalList",pagedResult.getDataList());
  366. rj.addResponseKeyValue("admin",admin);
  367. return rj;
  368. }
  369. /**
  370. * 修改审批状态 (1 通过 2驳回 3撤销 4评论)
  371. * @param
  372. * @return
  373. * @throws Exception
  374. */
  375. @ResponseBody
  376. @RequestMapping(value = "/updateApprovalInfo")
  377. public ResponseJson updateApprovalInfo(HttpServletRequest request,
  378. ApprovalInfo approvalInfo,Integer status) throws Exception {
  379. ResponseJson rj =new ResponseJson(200, "操作成功", 200);
  380. if(status == null){
  381. return ResponseJson.getFAILURE();
  382. }
  383. if(approvalInfo == null){
  384. return ResponseJson.getFAILURE();
  385. }
  386. //获取openid,根据openid查询当前登录人信息
  387. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  388. /*String openId = "oEy-_s_o_1oIv6h_KAs7QkeTQiJY";*/
  389. Admin admin = sysService.getByOpenid(openId);
  390. if(admin == null){
  391. return new ResponseJson(200, "未查询到登录人信息", 500);
  392. }
  393. rj = approvalOrderService.auditApprovalinfo(approvalInfo,admin,status);
  394. return rj;
  395. }
  396. /**
  397. * 查询审批订单详情
  398. * @param approvalInfo
  399. * @return
  400. * @throws Exception
  401. */
  402. @ResponseBody
  403. @RequestMapping(value = "/getApprovalInfo")
  404. public ResponseJson getApprovalInfo(HttpServletRequest request,
  405. ApprovalInfo approvalInfo) throws Exception {
  406. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  407. if(approvalInfo == null){
  408. return ResponseJson.getFAILURE();
  409. }
  410. //获取openid,根据openid查询当前登录人信息
  411. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  412. /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
  413. Admin admin = sysService.getByOpenid(openId);
  414. if(admin == null){
  415. return new ResponseJson(200, "未查询到登录人信息", 500);
  416. }
  417. //判断是否是仓库人员
  418. int isDelivery = 2;
  419. /*if(admin.getAdminDept() == 8){//8为仓储部门
  420. isDelivery = 1;
  421. }*/
  422. //判断是否是仓库人员
  423. AdminApprovalAuthority adminApprovalAuthority = approvalOrderService.getApprovalAuthority(admin.getAdminId());
  424. if(adminApprovalAuthority.getIsWarehouse() == 1){
  425. isDelivery = 1;
  426. }
  427. HistoricalRecord historicalRecord = new HistoricalRecord();
  428. historicalRecord.setApprovalId(approvalInfo.getApprovalId());
  429. historicalRecord.setAdminId(admin.getAdminId());
  430. historicalRecord.setRecordState(1);
  431. historicalRecord = approvalOrderService.getHistoricalRecord(historicalRecord);
  432. List<ApprovalInfo> info = approvalOrderService.getApprovalInfo(approvalInfo);
  433. if(info.size() < 1){
  434. return ResponseJson.getFAILURE();
  435. }
  436. rj.addResponseKeyValue("approvalInfo",info.get(0));
  437. rj.addResponseKeyValue("historicalRecord",historicalRecord);
  438. rj.addResponseKeyValue("adminid",admin.getAdminId());
  439. rj.addResponseKeyValue("isDelivery",isDelivery);
  440. return rj;
  441. }
  442. /**
  443. * 添加入库信息
  444. * @param request
  445. * @param inventoryRecordss
  446. * @return
  447. */
  448. @ResponseBody
  449. @RequestMapping(value = "/addInventoryRecords")
  450. public ResponseJson addInventoryRecords(HttpServletRequest request, String inventoryRecordss){
  451. if (inventoryRecordss == null || inventoryRecordss.equals("")) {
  452. return ResponseJson.getFAILURE();
  453. }
  454. //获取openid,根据openid查询当前登录人信息
  455. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  456. /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
  457. Admin admin = sysService.getByOpenid(openId);
  458. if(admin == null){
  459. return new ResponseJson(200, "未查询到登录人信息", 500);
  460. }
  461. return approvalOrderService.insertInventoryRecords(inventoryRecordss,admin);
  462. }
  463. /**
  464. * 获取某个审批的整个审批流程及仓库审批人信息 1:生成订单审批;2:提货申请
  465. * @param
  466. * @return
  467. * @throws Exception
  468. */
  469. @ResponseBody
  470. @RequestMapping(value = "/getFindApplyRu")
  471. public ResponseJson getFindApplyRu(HttpServletRequest request,
  472. Integer type) throws Exception {
  473. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  474. if(type == null){
  475. return ResponseJson.getFAILURE();
  476. }
  477. //获取openid,根据openid查询当前登录人信息
  478. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  479. Admin currentAdmin = sysService.getByOpenid(openId);
  480. if(currentAdmin == null){
  481. return new ResponseJson(200, "未查询到登录人信息", 500);
  482. }
  483. List<Object> info = approvalTaskService.findApplyRu(type);
  484. if(info.size() < 1){
  485. return ResponseJson.getFAILURE();
  486. }
  487. List<String[]> listString = new ArrayList<>();
  488. for (Object obj : info){
  489. String[] strings = (String[])obj;
  490. String[] str = new String[strings.length];
  491. for(int i = 0;i< strings.length;i++){
  492. Admin admin = sysService.getByName(strings[i]);
  493. if(admin == null){
  494. return new ResponseJson(200, "未找到管理员信息("+strings[i]+")", 500);
  495. }
  496. str[i] = admin.getAdminName();
  497. }
  498. listString.add(str);
  499. }
  500. AdminApprovalAuthority authority = new AdminApprovalAuthority();
  501. authority.setIsWarehouse(1);
  502. List<AdminApprovalAuthority> listAuthority = approvalOrderService.listApprovalAuthority(authority);
  503. Admin adminTwo = new Admin();
  504. adminTwo.setAdminId(listAuthority.get(0).getAdminId());
  505. List<Admin> listAdmin = sysService.listAdminInfo(adminTwo);
  506. rj.addResponseKeyValue("list",listString);
  507. rj.addResponseKeyValue("warehouseAdmin",listAdmin);
  508. rj.addResponseKeyValue("currentAdmin",currentAdmin);
  509. return rj;
  510. }
  511. /**
  512. * 查询审批产品项
  513. * @param approvalId
  514. * @return productionItem
  515. * @throws Exception
  516. */
  517. @ResponseBody
  518. @RequestMapping(value = "/getProductionItem")
  519. public ResponseJson getProductionItem(HttpServletRequest request,Integer approvalId) throws Exception {
  520. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  521. if(approvalId == null){
  522. return ResponseJson.getFAILURE();
  523. }
  524. ApprovalProduction approvalProduction = new ApprovalProduction();
  525. approvalProduction.setApprovalId(approvalId);
  526. List<ApprovalProduction> approvalProductionList = approvalProductionService.getApprovalProductionList(approvalProduction);
  527. approvalProduction = approvalProductionList.get(0);
  528. ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem();
  529. approvalProductionItem.setProductionId(approvalProduction.getProductionId());
  530. List<ApprovalProductionItem> approvalProductionItemList = approvalProductionService.getApprovalProductionItemList(approvalProductionItem);
  531. rj.addResponseKeyValue("apItemList",approvalProductionItemList);
  532. return rj;
  533. }
  534. /**
  535. * 查询入库记录
  536. * @param approvalId
  537. * @return productionItem
  538. * @throws Exception
  539. */
  540. @ResponseBody
  541. @RequestMapping(value = "/listInventoryRecords")
  542. public ResponseJson listInventoryRecords(HttpServletRequest request,Integer approvalId) throws Exception {
  543. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  544. if(approvalId == null){
  545. return ResponseJson.getFAILURE();
  546. }
  547. List<ApprovalInventoryRecords> listRecords = approvalOrderService.listInventoryRecords(approvalId);
  548. rj.addResponseKeyValue("listRecords",listRecords);
  549. return rj;
  550. }
  551. /**
  552. * 获取优尼雅管理员权限
  553. * @param request
  554. * @return
  555. */
  556. @ResponseBody
  557. @RequestMapping(value = "/getApprovalAuthority")
  558. public ResponseJson getApprovalAuthority(HttpServletRequest request){
  559. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  560. //获取openid,根据openid查询当前登录人信息
  561. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  562. Admin currentAdmin = sysService.getByOpenid(openId);
  563. if(currentAdmin == null){
  564. return new ResponseJson(200, "未查询到登录人信息", 500);
  565. }
  566. if(currentAdmin.getAdminDept() !=9){//9:优尼雅
  567. return new ResponseJson(200, "不允许非优尼雅部门员工查询", 500);
  568. }
  569. AdminApprovalAuthority adminApprovalAuthority = approvalOrderService.getApprovalAuthority(currentAdmin.getAdminId());
  570. rj.addResponseKeyValue("adminApprovalAuthority",adminApprovalAuthority);
  571. return rj;
  572. }
  573. /**
  574. * 查询待办数量
  575. * @param request
  576. * @return
  577. */
  578. @ResponseBody
  579. @RequestMapping(value = "/getTo_do")
  580. public ResponseJson getTo_do(HttpServletRequest request){
  581. //获取openid,根据openid查询当前登录人信息
  582. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  583. /*String openId = "oEy-_s_o_1oIv6h_KAs7QkeTQiJY";*/
  584. Admin admin = sysService.getByOpenid(openId);
  585. ResponseJson rj =new ResponseJson(200, "查询成功", 200);
  586. if(admin == null){
  587. return new ResponseJson(200, "未查询到登录人信息", 500);
  588. }
  589. if(admin.getAdminDept() !=9){//9:优尼雅
  590. return new ResponseJson(200, "不允许非优尼雅部门员工查询", 500);
  591. }
  592. AdminApprovalAuthority adminApprovalAuthority = approvalOrderService.getApprovalAuthority(admin.getAdminId());
  593. if(adminApprovalAuthority == null){
  594. return new ResponseJson(200, "未找到权限信息", 500);
  595. }
  596. if(adminApprovalAuthority.getIsSales() == 1){//查询销售 提货数量
  597. ApprovalInfo approvalInfo = new ApprovalInfo();
  598. approvalInfo.setAdminId(admin.getAdminId());
  599. approvalInfo.setSelectState(5);//查询待审批条数
  600. List<ApprovalInfo> listInfo = approvalOrderService.getApprovalInfo(approvalInfo);
  601. rj.addResponseKeyValue("salesPickNum",listInfo.size());
  602. }else{
  603. rj.addResponseKeyValue("salesPickNum",0);
  604. }
  605. if(adminApprovalAuthority.getIsPmc() == 1 || adminApprovalAuthority.getIsManagement() == 1){
  606. ApprovalInfo approvalInfo = new ApprovalInfo();
  607. approvalInfo.setApprovalAdminId(admin.getAdminId());
  608. approvalInfo.setSelectState(1);//查询待审批条数
  609. List<ApprovalInfo> listInfo = approvalOrderService.getApprovalInfo(approvalInfo);
  610. rj.addResponseKeyValue("approvalNum",listInfo.size());
  611. }else{
  612. rj.addResponseKeyValue("approvalNum",0);
  613. }
  614. if(adminApprovalAuthority.getIsWarehouse() == 1){
  615. ApprovalInfo approvalInfo = new ApprovalInfo();
  616. approvalInfo.setSelectState(3);
  617. List<ApprovalInfo> listInfo = approvalOrderService.getApprovalInfo(approvalInfo);
  618. rj.addResponseKeyValue("warehouseNum",listInfo.size());
  619. }else{
  620. rj.addResponseKeyValue("warehouseNum",0);
  621. }
  622. return rj;
  623. }
  624. /*@ResponseBody
  625. @RequestMapping(value = "/deploymentPrecessDefinition")
  626. public void deploymentPrecessDefinition(){
  627. getBpmnModel();
  628. repositoryService.deleteDeployment("310008",true);
  629. repositoryService.deleteDeployment("427508",true);
  630. repositoryService.deleteDeployment("427501",true);
  631. repositoryService.deleteDeployment("422501",true);
  632. *//*Deployment deployment = repositoryService.createDeployment()
  633. .key("GenerationApproval")
  634. .name("提交审批流程")
  635. .addClasspathResource("RST.bpmn")
  636. .deploy();
  637. Deployment deployment = repositoryService.createDeployment()
  638. .key("ApplicationForDelivery")
  639. .name("提交提货订单审批流程")
  640. .addClasspathResource("pickRst.bpmn")
  641. .deploy();*//*
  642. //获取审批任务id
  643. Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(1);
  644. String[] split = (String[])taskinfo.get("users");
  645. for (String name : split){
  646. System.out.println(name);
  647. }
  648. Map<String, Object> taskinfo2 = approvalTaskService.salesmanSubmitApply(2);
  649. String[] split2 = (String[])taskinfo2.get("users");
  650. for (String name : split2){
  651. System.out.println(name);
  652. }
  653. }*/
  654. }