ApplyPickController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.iamberry.rst.controllers.approval;
  2. import com.iamberry.rst.core.approval.*;
  3. import com.iamberry.rst.core.cm.SendProdcue;
  4. import com.iamberry.rst.core.order.OrderBatch;
  5. import com.iamberry.rst.core.page.PageRequest;
  6. import com.iamberry.rst.core.page.PagedResult;
  7. import com.iamberry.rst.core.sys.Admin;
  8. import com.iamberry.rst.faces.approval.*;
  9. import com.iamberry.rst.faces.sys.SysService;
  10. import com.iamberry.rst.service.approval.ApprovalProductionContractServiceImpl;
  11. import com.iamberry.rst.utils.StitchAttrUtil;
  12. import com.iamberry.wechat.core.entity.WechatUtils;
  13. import com.iamberry.wechat.tools.ResponseJson;
  14. import net.sf.json.JSONArray;
  15. import org.apache.shiro.authz.annotation.RequiresPermissions;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Controller;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.bind.annotation.RequestParam;
  20. import org.springframework.web.bind.annotation.ResponseBody;
  21. import javax.servlet.http.HttpServletRequest;
  22. import java.util.HashMap;
  23. import java.util.List;
  24. import java.util.Map;
  25. @Controller
  26. @RequestMapping("/wechat/applyPick")
  27. public class ApplyPickController {
  28. @Autowired
  29. private ApplyPickService applyPickService;
  30. @Autowired
  31. private ApplyPickItemService applyPickItemService;
  32. @Autowired
  33. private ApprovalTaskService approvalTaskService;
  34. @Autowired
  35. private SysService sysService;
  36. @Autowired
  37. private ApprovalOrderService approvalOrderService;
  38. @Autowired
  39. private ApprovalProductionContractServiceImpl approvalProductionContractService;
  40. @Autowired
  41. private ApprovalProductionService approvalProductionService;
  42. @Autowired
  43. private HistoricalRecordService historicalRecordService;
  44. /**
  45. * 获取已审批通过的订单
  46. * @return
  47. */
  48. @ResponseBody
  49. @RequestMapping("/listApprovalOrder")
  50. @RequiresPermissions("pick:listApprovalOrder")
  51. public ResponseJson listApprovalOrder() {
  52. return null;
  53. }
  54. /**
  55. * 获取提货列表
  56. * @return
  57. */
  58. @ResponseBody
  59. @RequestMapping("/listApplyPick")
  60. public ResponseJson listApplyPick(HttpServletRequest request,Integer applyPickStruts,
  61. @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
  62. @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
  63. @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum
  64. ) {
  65. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  66. Admin admin = sysService.getByOpenid(openId);
  67. if(admin == null){
  68. return new ResponseJson(500, "FAILURE", 500);
  69. }
  70. ApprovalApplyPick approvalApplyPick = new ApprovalApplyPick();
  71. approvalApplyPick.setAdminId(admin.getAdminId());
  72. approvalApplyPick.setApplyPickStruts(applyPickStruts);
  73. PagedResult<ApprovalApplyPick> pagedResult = applyPickService.listOrderBatchPage(pageNo, pageSize, approvalApplyPick, totalNum == 0);
  74. if (totalNum != 0){
  75. pagedResult.setTotal(totalNum);
  76. }
  77. ResponseJson rj = ResponseJson.getSUCCESS();
  78. rj.addResponseKeyValue("lastPage",StitchAttrUtil.getSa().getLastPage(pagedResult));
  79. rj.addResponseKeyValue("list",pagedResult.getDataList());
  80. return rj;
  81. }
  82. /**
  83. * 添加提货
  84. * @param request
  85. * @param approvalApplyPick 提货信息
  86. * @param listApplyPickItemJson 提货选定的生产产品信息
  87. * @param imageJson 合同信息
  88. * @return
  89. */
  90. @ResponseBody
  91. @RequestMapping("/addApplyPick")
  92. public ResponseJson addApplyPick(HttpServletRequest request,ApprovalApplyPick approvalApplyPick,String listApplyPickItemJson,String imageJson) {
  93. ResponseJson rj = new ResponseJson(500, "FAILURE", 500);
  94. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  95. Map<String,Object> map = verification(approvalApplyPick);
  96. boolean flag = (boolean) map.get("status");
  97. if(!flag){
  98. rj.setResultMsg((String) map.get("msg"));
  99. return rj;
  100. }
  101. JSONArray imageJSONArray = JSONArray.fromObject(imageJson);
  102. List<ApprovalProductionContract> approvalProductionContractList = (List) JSONArray.toCollection(imageJSONArray, ApprovalProductionContract.class);
  103. JSONArray jsonArray = JSONArray.fromObject(listApplyPickItemJson);
  104. List<ApprovalApplyPickItem> listApplyPickItem = (List) JSONArray.toCollection(jsonArray, ApprovalApplyPickItem.class);
  105. approvalApplyPick.setListApplyPickItem(listApplyPickItem);
  106. approvalApplyPick.setApplyPickStruts(1);
  107. //获取审批任务id
  108. Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(2);
  109. try{
  110. applyPickService.save(approvalApplyPick,openId,taskinfo,approvalProductionContractList);
  111. }catch (Exception e){
  112. e.printStackTrace();
  113. rj.setResultMsg("提货失败,详情:"+ e.getMessage());
  114. return rj;
  115. }
  116. rj = ResponseJson.getSUCCESS();
  117. return rj;
  118. }
  119. /**
  120. * 验证提货申请
  121. * @param approvalApplyPick
  122. * @return
  123. */
  124. private Map<String,Object> verification(ApprovalApplyPick approvalApplyPick){
  125. Map<String,Object> map = new HashMap<>();
  126. map.put("status",false);
  127. if(approvalApplyPick.getApplyPickName() == null || "".equals(approvalApplyPick.getApplyPickName())){
  128. map.put("msg","姓名为空");
  129. return map;
  130. }
  131. // if(approvalApplyPick.getApplyPickTel() == null || "".equals(approvalApplyPick.getApplyPickTel())){
  132. // map.put("msg","电话号码为空");
  133. // return map;
  134. // }
  135. if(approvalApplyPick.getProductionApprovalId() == null || "".equals(approvalApplyPick.getProductionApprovalId())){
  136. map.put("msg","未选择审批订单");
  137. return map;
  138. }else{
  139. ApprovalInfo approvalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getProductionApprovalId());
  140. if(approvalInfo == null){
  141. map.put("msg","选择生产审批订单id错误");
  142. return map;
  143. }
  144. }
  145. map.put("status",true);
  146. map.put("msg","success");
  147. return map;
  148. }
  149. /**
  150. * 获取提货信息
  151. * @return
  152. */
  153. @ResponseBody
  154. @RequestMapping("/getApplyPick")
  155. public ResponseJson getApplyPick(HttpServletRequest request,Integer applyPickId) {
  156. if(applyPickId == null){
  157. return new ResponseJson(500, "FAILURE", 500);
  158. }
  159. String openId = WechatUtils.getUserBySession(request).getUserOpenid();
  160. Admin admin = sysService.getByOpenid(openId);
  161. ResponseJson rj = ResponseJson.getSUCCESS();
  162. ApprovalApplyPick approvalApplyPick = applyPickService.getApprovalApplyPickById(applyPickId);
  163. ApprovalApplyPickItem approvalApplyPickItem = new ApprovalApplyPickItem();
  164. approvalApplyPickItem.setApplyPickId(applyPickId);
  165. List<ApprovalApplyPickItem> approvalApplyPickItemList = applyPickItemService.getApprovalApplyPickItemList(approvalApplyPickItem);
  166. approvalApplyPick.setListApplyPickItem(approvalApplyPickItemList);
  167. ApprovalProductionContract approvalProductionContract = new ApprovalProductionContract();
  168. approvalProductionContract.setApprovalId(approvalApplyPick.getApprovalId());
  169. List<ApprovalProductionContract> approvalProductionContractList = approvalProductionContractService.getApprovalProductionContractList(approvalProductionContract);
  170. /*该提货所属的审批信息*/
  171. ApprovalInfo approvalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getApprovalId());
  172. /*绑定的生产审批信息*/
  173. ApprovalInfo productionApprovalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getProductionApprovalId());
  174. /*生产订单信息*/
  175. ApprovalProduction ap = new ApprovalProduction();
  176. ap.setApprovalId(productionApprovalInfo.getApprovalId());
  177. List<ApprovalProduction> approvalProductionList = approvalProductionService.getApprovalProductionList(ap);
  178. if(approvalProductionList != null && approvalProductionList.size() > 0 ){
  179. ap = approvalProductionList.get(0);
  180. ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem();
  181. approvalProductionItem.setProductionId(ap.getProductionId());
  182. List<ApprovalProductionItem> approvalProductionItemList = approvalProductionService.getApprovalProductionItemList(approvalProductionItem);
  183. ap.setListProductionItem(approvalProductionItemList);
  184. rj.addResponseKeyValue("approvalProduction",ap);
  185. }
  186. /*获取当前登录人查看当前审批的记录,判断状态*/
  187. HistoricalRecord historicalRecord = new HistoricalRecord();
  188. historicalRecord.setApprovalId(approvalApplyPick.getApprovalId());
  189. historicalRecord.setAdminId(admin.getAdminId());
  190. List<HistoricalRecord> historicalRecords = historicalRecordService.getHistoricalRecordList(historicalRecord);
  191. rj.addResponseKeyValue("approvalApplyPick",approvalApplyPick);
  192. rj.addResponseKeyValue("productionContractList",approvalProductionContractList);
  193. rj.addResponseKeyValue("approvalInfo",approvalInfo);
  194. rj.addResponseKeyValue("productionApprovalInfo",productionApprovalInfo);
  195. rj.addResponseKeyValue("admin",admin);
  196. rj.addResponseKeyValue("historicalRecords",historicalRecords);
  197. return rj;
  198. }
  199. /**
  200. * 发货
  201. * @param request
  202. * @param applyPickId 提货id
  203. * @param applyPickShipWay 发货方式
  204. * @param applyPickShipCertificate 发货凭证
  205. * @return
  206. */
  207. @ResponseBody
  208. @RequestMapping("/ship")
  209. public ResponseJson ship(HttpServletRequest request,Integer applyPickId, String applyPickShipWay,String applyPickShipCertificate) {
  210. if(applyPickShipWay == null || "".equals(applyPickShipWay)){
  211. return new ResponseJson(500, "发货方式为空!", 500);
  212. }
  213. if(applyPickShipCertificate == null || "".equals(applyPickShipCertificate) ){
  214. return new ResponseJson(500, "发货凭证为空!", 500);
  215. }
  216. ApprovalApplyPick aap = applyPickService.getApprovalApplyPickById(applyPickId);
  217. if(aap == null){
  218. return new ResponseJson(500, "提货信息有误!", 500);
  219. }
  220. if(aap.getApplyPickStruts() != 1){
  221. return new ResponseJson(500, "该提货信息操作已发货!", 500);
  222. }
  223. ResponseJson rj = ResponseJson.getSUCCESS();
  224. ApprovalApplyPick approvalApplyPick = new ApprovalApplyPick();
  225. approvalApplyPick.setApplyPickStruts(2);
  226. approvalApplyPick.setApplyPickId(applyPickId);
  227. approvalApplyPick.setApplyPickShipCertificate(applyPickShipCertificate);
  228. approvalApplyPick.setApplyPickShipWay(applyPickShipWay);
  229. Integer flag = applyPickService.update(approvalApplyPick);
  230. if(flag < 1){
  231. return new ResponseJson(500, "发货失败", 500);
  232. }
  233. //修改审批信息状态为发货
  234. ApprovalInfo approvalInfo = new ApprovalInfo();
  235. approvalInfo.setApprovalId(aap.getApprovalId());
  236. approvalInfo.setApprovalStatusDetails("已发货");
  237. approvalInfo.setApprovalStatus(8);
  238. if(approvalOrderService.updateApprovalInfo(approvalInfo) < 1){
  239. rj = ResponseJson.getFAILURE();
  240. rj.setResultMsg("修改审批信息状态为发货失败!");
  241. return rj;
  242. }
  243. return rj;
  244. }
  245. }