package com.iamberry.rst.controllers.approval; import com.iamberry.rst.core.approval.*; import com.iamberry.rst.core.cm.SendProdcue; import com.iamberry.rst.core.order.OrderBatch; import com.iamberry.rst.core.page.PageRequest; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.core.sys.Admin; import com.iamberry.rst.faces.approval.*; import com.iamberry.rst.faces.sys.SysService; import com.iamberry.rst.service.approval.ApprovalProductionContractServiceImpl; import com.iamberry.rst.utils.StitchAttrUtil; import com.iamberry.wechat.core.entity.WechatUtils; import com.iamberry.wechat.tools.ResponseJson; import net.sf.json.JSONArray; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller @RequestMapping("/wechat/applyPick") public class ApplyPickController { @Autowired private ApplyPickService applyPickService; @Autowired private ApplyPickItemService applyPickItemService; @Autowired private ApprovalTaskService approvalTaskService; @Autowired private SysService sysService; @Autowired private ApprovalOrderService approvalOrderService; @Autowired private ApprovalProductionContractServiceImpl approvalProductionContractService; @Autowired private ApprovalProductionService approvalProductionService; @Autowired private HistoricalRecordService historicalRecordService; /** * 获取已审批通过的订单 * @return */ @ResponseBody @RequestMapping("/listApprovalOrder") @RequiresPermissions("pick:listApprovalOrder") public ResponseJson listApprovalOrder() { return null; } /** * 获取提货列表 * @return */ @ResponseBody @RequestMapping("/listApplyPick") public ResponseJson listApplyPick(HttpServletRequest request,Integer applyPickStruts, @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum ) { String openId = WechatUtils.getUserBySession(request).getUserOpenid(); Admin admin = sysService.getByOpenid(openId); if(admin == null){ return new ResponseJson(500, "FAILURE", 500); } ApprovalApplyPick approvalApplyPick = new ApprovalApplyPick(); approvalApplyPick.setAdminId(admin.getAdminId()); approvalApplyPick.setApplyPickStruts(applyPickStruts); PagedResult pagedResult = applyPickService.listOrderBatchPage(pageNo, pageSize, approvalApplyPick, totalNum == 0); if (totalNum != 0){ pagedResult.setTotal(totalNum); } ResponseJson rj = ResponseJson.getSUCCESS(); rj.addResponseKeyValue("lastPage",StitchAttrUtil.getSa().getLastPage(pagedResult)); rj.addResponseKeyValue("list",pagedResult.getDataList()); return rj; } /** * 添加提货 * @param request * @param approvalApplyPick 提货信息 * @param listApplyPickItemJson 提货选定的生产产品信息 * @param imageJson 合同信息 * @return */ @ResponseBody @RequestMapping("/addApplyPick") public ResponseJson addApplyPick(HttpServletRequest request,ApprovalApplyPick approvalApplyPick,String listApplyPickItemJson,String imageJson) { ResponseJson rj = new ResponseJson(500, "FAILURE", 500); String openId = WechatUtils.getUserBySession(request).getUserOpenid(); Map map = verification(approvalApplyPick); boolean flag = (boolean) map.get("status"); if(!flag){ rj.setResultMsg((String) map.get("msg")); return rj; } JSONArray imageJSONArray = JSONArray.fromObject(imageJson); List approvalProductionContractList = (List) JSONArray.toCollection(imageJSONArray, ApprovalProductionContract.class); JSONArray jsonArray = JSONArray.fromObject(listApplyPickItemJson); List listApplyPickItem = (List) JSONArray.toCollection(jsonArray, ApprovalApplyPickItem.class); approvalApplyPick.setListApplyPickItem(listApplyPickItem); approvalApplyPick.setApplyPickStruts(1); //获取审批任务id Map taskinfo = approvalTaskService.salesmanSubmitApply(2); try{ applyPickService.save(approvalApplyPick,openId,taskinfo,approvalProductionContractList); }catch (Exception e){ e.printStackTrace(); rj.setResultMsg("提货失败,详情:"+ e.getMessage()); return rj; } rj = ResponseJson.getSUCCESS(); return rj; } /** * 验证提货申请 * @param approvalApplyPick * @return */ private Map verification(ApprovalApplyPick approvalApplyPick){ Map map = new HashMap<>(); map.put("status",false); if(approvalApplyPick.getApplyPickName() == null || "".equals(approvalApplyPick.getApplyPickName())){ map.put("msg","姓名为空"); return map; } // if(approvalApplyPick.getApplyPickTel() == null || "".equals(approvalApplyPick.getApplyPickTel())){ // map.put("msg","电话号码为空"); // return map; // } if(approvalApplyPick.getProductionApprovalId() == null || "".equals(approvalApplyPick.getProductionApprovalId())){ map.put("msg","未选择审批订单"); return map; }else{ ApprovalInfo approvalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getProductionApprovalId()); if(approvalInfo == null){ map.put("msg","选择生产审批订单id错误"); return map; } } map.put("status",true); map.put("msg","success"); return map; } /** * 获取提货信息 * @return */ @ResponseBody @RequestMapping("/getApplyPick") public ResponseJson getApplyPick(HttpServletRequest request,Integer applyPickId) { if(applyPickId == null){ return new ResponseJson(500, "FAILURE", 500); } String openId = WechatUtils.getUserBySession(request).getUserOpenid(); Admin admin = sysService.getByOpenid(openId); ResponseJson rj = ResponseJson.getSUCCESS(); ApprovalApplyPick approvalApplyPick = applyPickService.getApprovalApplyPickById(applyPickId); ApprovalApplyPickItem approvalApplyPickItem = new ApprovalApplyPickItem(); approvalApplyPickItem.setApplyPickId(applyPickId); List approvalApplyPickItemList = applyPickItemService.getApprovalApplyPickItemList(approvalApplyPickItem); approvalApplyPick.setListApplyPickItem(approvalApplyPickItemList); ApprovalProductionContract approvalProductionContract = new ApprovalProductionContract(); approvalProductionContract.setApprovalId(approvalApplyPick.getApprovalId()); List approvalProductionContractList = approvalProductionContractService.getApprovalProductionContractList(approvalProductionContract); /*该提货所属的审批信息*/ ApprovalInfo approvalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getApprovalId()); /*绑定的生产审批信息*/ ApprovalInfo productionApprovalInfo = approvalOrderService.getApprovalInfoById(approvalApplyPick.getProductionApprovalId()); /*生产订单信息*/ ApprovalProduction ap = new ApprovalProduction(); ap.setApprovalId(productionApprovalInfo.getApprovalId()); List approvalProductionList = approvalProductionService.getApprovalProductionList(ap); if(approvalProductionList != null && approvalProductionList.size() > 0 ){ ap = approvalProductionList.get(0); ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem(); approvalProductionItem.setProductionId(ap.getProductionId()); List approvalProductionItemList = approvalProductionService.getApprovalProductionItemList(approvalProductionItem); ap.setListProductionItem(approvalProductionItemList); rj.addResponseKeyValue("approvalProduction",ap); } /*获取当前登录人查看当前审批的记录,判断状态*/ HistoricalRecord historicalRecord = new HistoricalRecord(); historicalRecord.setApprovalId(approvalApplyPick.getApprovalId()); historicalRecord.setAdminId(admin.getAdminId()); List historicalRecords = historicalRecordService.getHistoricalRecordList(historicalRecord); rj.addResponseKeyValue("approvalApplyPick",approvalApplyPick); rj.addResponseKeyValue("productionContractList",approvalProductionContractList); rj.addResponseKeyValue("approvalInfo",approvalInfo); rj.addResponseKeyValue("productionApprovalInfo",productionApprovalInfo); rj.addResponseKeyValue("admin",admin); rj.addResponseKeyValue("historicalRecords",historicalRecords); return rj; } /** * 发货 * @param request * @param applyPickId 提货id * @param applyPickShipWay 发货方式 * @param applyPickShipCertificate 发货凭证 * @return */ @ResponseBody @RequestMapping("/ship") public ResponseJson ship(HttpServletRequest request,Integer applyPickId, String applyPickShipWay,String applyPickShipCertificate) { if(applyPickShipWay == null || "".equals(applyPickShipWay)){ return new ResponseJson(500, "发货方式为空!", 500); } if(applyPickShipCertificate == null || "".equals(applyPickShipCertificate) ){ return new ResponseJson(500, "发货凭证为空!", 500); } ApprovalApplyPick aap = applyPickService.getApprovalApplyPickById(applyPickId); if(aap == null){ return new ResponseJson(500, "提货信息有误!", 500); } if(aap.getApplyPickStruts() != 1){ return new ResponseJson(500, "该提货信息操作已发货!", 500); } ResponseJson rj = ResponseJson.getSUCCESS(); ApprovalApplyPick approvalApplyPick = new ApprovalApplyPick(); approvalApplyPick.setApplyPickStruts(2); approvalApplyPick.setApplyPickId(applyPickId); approvalApplyPick.setApplyPickShipCertificate(applyPickShipCertificate); approvalApplyPick.setApplyPickShipWay(applyPickShipWay); Integer flag = applyPickService.update(approvalApplyPick); if(flag < 1){ return new ResponseJson(500, "发货失败", 500); } //修改审批信息状态为发货 ApprovalInfo approvalInfo = new ApprovalInfo(); approvalInfo.setApprovalId(aap.getApprovalId()); approvalInfo.setApprovalStatusDetails("已发货"); approvalInfo.setApprovalStatus(8); if(approvalOrderService.updateApprovalInfo(approvalInfo) < 1){ rj = ResponseJson.getFAILURE(); rj.setResultMsg("修改审批信息状态为发货失败!"); return rj; } return rj; } }