package com.zym.pss.cargo.controller; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.zym.pss.baseinfo.po.Custom; import com.zym.pss.baseinfo.po.Product; import com.zym.pss.baseinfo.service.CustomService; import com.zym.pss.baseinfo.service.ProductService; import com.zym.pss.cargo.po.Order; import com.zym.pss.cargo.po.SaleOrder; import com.zym.pss.cargo.service.OrderService; import com.zym.pss.cargo.service.SaleOrderService; import com.zym.pss.core.controller.BaseController; import com.zym.pss.sysadmin.vo.UserVo; @Controller @RequestMapping("/cargo/saleorder") public class SaleOrderController extends BaseController{ @Resource OrderService orderService ; //订单Service @Resource private CustomService customService ; //客户Service @Resource private ProductService productService ; //货物Service @Resource private SaleOrderService saleOrderService ; //销售订单Service //存放列表信息 private List<Order> dataList ; /** * 跳转到销售订单列表页面 */ @RequestMapping("/list.action") public String sale_list(Model model,HttpSession Session ){ //获取当前用户 UserVo curuser = (UserVo) Session.getAttribute("CURUSER"); Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId", curuser.getTenantId()); paraMap.put("orderType", "2"); dataList = orderService.find(paraMap); model.addAttribute("dataList",dataList); model.addAttribute("orderState",Order.ORDER_STATE_MAP); return "/cargo/saleorder/jOrderList.jsp" ; } @RequestMapping("/toview.action") public String toview(String id , Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Order obj = this.orderService.get(id); //通过订单编号查询订单下的货物列表 Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId", curuser.getTenantId()); paraMap.put("orderNo", obj.getOrderNo()); List<SaleOrder> goodsList = this.saleOrderService.find(paraMap); model.addAttribute("goodsList",goodsList); model.addAttribute("obj",obj); return "/cargo/saleorder/jOrderView.jsp"; } /** * 跳到添加页面 */ @RequestMapping("/tocreate.action") public String tocreate(){ return "/cargo/saleorder/jOrderCreate.jsp"; } /** * 添加 */ @RequestMapping("/insert.action") public String create(Order order,HttpSession session ){ //获取租户信息 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); String tenantId = curuser.getTenantId() ; order.setTenantId(tenantId); this.orderService.insert(order); return "redirect:/cargo/saleorder/list.action"; } /** * 跳到更新页面 */ @RequestMapping("/toupdate.action") public String toupdate(String id,Model model){ Order obj = this.orderService.get(id); if(obj.getState() == 1){ model.addAttribute("obj",obj); return "/cargo/saleorder/jOrderUpdate.jsp"; }else{ return "redirect:/cargo/saleorder/list.action"; } } /** * 更新 */ @RequestMapping("/update.action") public String update(Order order){ this.orderService.update(order); return "redirect:/cargo/saleorder/list.action"; } /** * 删除 */ /* @RequestMapping("/deleteById.action") public String deleteById(String id){ this.orderService.deleteById(id); return "redirect:/cargo/saleorder/list.action"; }*/ /** * 批量删除 */ @RequestMapping("/delete.action") public String delete(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 1 ){ this.orderService.delete(new String[]{ids[i]}); } } return "redirect:/cargo/saleorder/list.action"; } /** * 上报订单 * @param id * @return */ @RequestMapping("/start.action") public String start(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 1 || o.getState() == 4){ //只有当 订单的状态为 未上报 状态时,才可以上报.其他状态都不可以上报 this.orderService.updateState(new String[]{ids[i]},2); } } return "redirect:/cargo/saleorder/list.action"; } /** * 订单审核(通过) * @param ids * @return */ @RequestMapping("/check.action") public String check(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 2 ){ //只有当订单状态为待审核状态时,才可以审核 this.orderService.updateState(new String[]{ids[i]},3); } } return "redirect:/cargo/order/orderreview.action"; } /** * 订单审核(未通过) * @param ids * @return */ @RequestMapping("/checkFail.action") public String checkFail(@RequestParam("id")String[] ids){ for(int i = 0 ; i < ids.length;i++){ Order o = orderService.get(ids[i]); if(o.getState() == 2 ){ //只有当订单状态为待审核状态时,才可以审核 this.orderService.updateState(new String[]{ids[i]},4); } } return "redirect:/cargo/order/orderreview.action"; } /** * 取消订单 * @param ids * @return */ @RequestMapping("/cancel.action") public String cancel(@RequestParam("id")String[] ids){ this.orderService.updateState(ids,1); return "redirect:/cargo/saleorder/list.action"; } //-----------------------------------------------------------订单下货物CRUD---------------------------------------- /** * 跳转到订单货物添加页面 * @param id * @param model * @return */ @RequestMapping("/toaddproduct.action") public String toAddProduct(String orderNo ,Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Map<String,Object> paraMap1 = new HashMap<String,Object>(); paraMap1.put("tenantId", curuser.getTenantId()); //准备客户下拉列表 List<Custom> customList = this.customService.find(paraMap1); //准备货物下拉列表 List<Product> productList = this.productService.find(paraMap1); //查询该订单下的销售货物信息 Map<String,Object> paraMap = new HashMap<String,Object>(); paraMap.put("tenantId",curuser.getTenantId()); paraMap.put("orderNo", orderNo); //获取订单编号 List<SaleOrder> saleOrderList = this.saleOrderService.find(paraMap); //返回到页面 model.addAttribute("customList",customList); model.addAttribute("productList",productList); model.addAttribute("orderNo",orderNo); model.addAttribute("saleOrderList",saleOrderList); return "/cargo/saleorder/jSOProductCreate.jsp"; } /** * 给订单添加货物 * @param OrderId * @param materialNo * @param supplierNo * @param purchaseAmount * @return */ @RequestMapping("/addproduct.action") public String addProduct(SaleOrder saleOrder,String orderNo , Model model,HttpSession session ){ //获取租户信息 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); String tenantId = curuser.getTenantId() ; saleOrder.setTenantId(tenantId); this.saleOrderService.insert(saleOrder); //传递订单ID到 -- 新增+列表页面 model.addAttribute("orderNo", orderNo); return "redirect:/cargo/saleorder/toaddproduct.action"; } /** * 跳转到订单货物更新页面 * @param id * @param model * @return */ @RequestMapping("/toupdateproduct.action") public String toUpdateProduct(String id ,String orderNo , Model model,HttpSession session ){ //获取当前用户 UserVo curuser = (UserVo) session.getAttribute("CURUSER"); Map<String,Object> paraMap1 = new HashMap<String,Object>(); paraMap1.put("tenantId", curuser.getTenantId()); //准备客户下拉列表 List<Custom> customList = this.customService.find(paraMap1); //准备货物下拉列表 List<Product> productList = this.productService.find(paraMap1); //获取销售订单记录 SaleOrder obj = this.saleOrderService.get(id); //返回到页面 model.addAttribute("customList",customList); model.addAttribute("productList",productList); model.addAttribute("obj",obj); //传递订单ID model.addAttribute("orderNo",orderNo); return "/cargo/saleorder/jSOProductUpdate.jsp"; } /** * 更新采购原材料信息 * @param purchaseOrder * @return */ @RequestMapping("/updateproduct.action") public String updateProduct(SaleOrder saleOrder,String orderNo , Model model){ this.saleOrderService.update(saleOrder); //传递订单ID到 -- 新增+列表页面 return "redirect:/cargo/saleorder/toaddproduct.action?orderNo="+orderNo; } /** * 删除订单下原材料信息 * @param id * @param orderId * @param model * @return */ @RequestMapping("/deleteproduct.action") public String deleteProduct(String id ,String orderNo , Model model){ this.saleOrderService.deleteById(id); //跳转到订单原材料添加页面,同时传递订单的编号 return "redirect:/cargo/saleorder/toaddproduct.action?orderNo="+orderNo; } }