package com.iamberry.rst.controllers.pts; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.core.pts.Produce; import com.iamberry.rst.core.pts.PtsBom; import com.iamberry.rst.core.pts.PtsComponents; import com.iamberry.rst.core.pts.PtsSupplier; import com.iamberry.rst.faces.pts.MachinePartsService; import com.iamberry.rst.faces.pts.MachineSupplierService; import com.iamberry.rst.faces.pts.ProduceService; import com.iamberry.rst.faces.pts.PtsBomService; import com.iamberry.rst.utils.StitchAttrUtil; import com.iamberry.wechat.tools.ResponseJson; 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 org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; /** * Created by LJK on 2017/8/29. */ @Controller @RequestMapping("/admin/machineParts") public class AdminMachinePartsController { @Autowired private MachinePartsService machinePartsService; @Autowired private ProduceService produceService; @Autowired private MachineSupplierService machineSupplierService; @Autowired private PtsBomService ptsBomService; /** * 进入添加机器零件页面 * **/ @RequiresPermissions("machineParts:add:machineParts") @RequestMapping("/_to_add_machineParts") public ModelAndView toAddMachineParts(){ ModelAndView mv = new ModelAndView("pts/machinePtras/ptras_add"); List list = produceService.getProduceList(); mv.addObject("produceList", list); List listSupplier = machineSupplierService.listMachineSupplier(); mv.addObject("listSupplier", listSupplier); return mv; } /** * 添加机器零件 * **/ @ResponseBody @RequiresPermissions("machineParts:add:machineParts") @RequestMapping("/add_machineParts") public ResponseJson addMachineParts(HttpServletRequest request,PtsComponents ptsComponents){ ResponseJson responseJson = new ResponseJson(); if(ptsComponents == null){ responseJson.setReturnCode(500); return responseJson; } PtsComponents components = machinePartsService.getmachineParts(ptsComponents); if(components != null){ responseJson.setReturnCode(501); return responseJson; } ptsComponents.setComponentsCost(ptsComponents.getComponentsCost() * 100);//元转换为分 ptsComponents.setComponentsCreateTime(new Date()); Integer msg = machinePartsService.addMachineParts(ptsComponents); if(msg > 0){ responseJson.setReturnCode(200); }else{ responseJson.setReturnCode(500); } return responseJson; } /** * 获取机器零件列表 * * @param request * @return */ @RequiresPermissions("parts:select:list") @RequestMapping("/_parts_list") public ModelAndView getPtsBom(HttpServletRequest request,PtsComponents ptsComponents, @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize, @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO, @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) { ModelAndView mv = new ModelAndView("pts/machinePtras/parts_list"); PagedResult pagedResult = machinePartsService.listPtsComponents(pageNO, pageSize, ptsComponents, totalNum == 0); if (totalNum != 0){ pagedResult.setTotal(totalNum); } //获取产品集合,用于页面选择产品 List list = produceService.getProduceList(); mv.addObject("produceList",list); StitchAttrUtil.setModelAndView(ptsComponents, mv, "/admin/machineParts/_parts_list", pagedResult); return mv; } /** * 进入修改机器零件页面 * **/ @RequiresPermissions("machineParts:update:machineParts") @RequestMapping("/_to_update_machineParts") public ModelAndView toupdateMachineParts(HttpServletRequest request){ ModelAndView mv = new ModelAndView("pts/machinePtras/ptras_update"); String componentsId = request.getParameter("componentsId"); PtsComponents ptsComponents = new PtsComponents(); ptsComponents.setComponentsId(Integer.valueOf(componentsId)); ptsComponents = machinePartsService.getmachineParts(ptsComponents); mv.addObject("ptsComponents", ptsComponents); List list = produceService.getProduceList(); mv.addObject("produceList", list); List listSupplier = machineSupplierService.listMachineSupplier(); mv.addObject("listSupplier", listSupplier); return mv; } /** * 修改机器零件 * **/ @ResponseBody @RequiresPermissions("machineParts:update:machineParts") @RequestMapping("/update_machineParts") public ResponseJson updateMachineParts(HttpServletRequest request,PtsComponents ptsComponents){ ResponseJson responseJson = new ResponseJson(); if(ptsComponents == null){ responseJson.setReturnCode(500); return responseJson; } Integer componentsId = ptsComponents.getComponentsId(); PtsComponents componentsByid = new PtsComponents(); componentsByid.setComponentsId(componentsId); PtsComponents components = machinePartsService.getmachineParts(componentsByid); if(!components.getComponentsNo().equals(ptsComponents.getComponentsNo()) || components.getComponentsStatus() != ptsComponents.getComponentsStatus() || components.getProduceId() != components.getProduceId()){ ptsComponents.setComponentsId(null); components = machinePartsService.getmachineParts(ptsComponents); if(components != null){ responseJson.setReturnCode(501); return responseJson; } } //如果改变了产品或者状态,则删掉关联的bom单 if(components.getComponentsStatus() != ptsComponents.getComponentsStatus() || components.getProduceId() != components.getProduceId()){ ptsBomService.deleteBomComponentByComponentsId(componentsId); } ptsComponents.setComponentsId(componentsId); ptsComponents.setComponentsCost(ptsComponents.getComponentsCost() * 100);//元转换为分 ptsComponents.setComponentsUpdateTime(new Date()); Integer msg = machinePartsService.updateParts(ptsComponents); if(msg > 0){ responseJson.setReturnCode(200); }else{ responseJson.setReturnCode(500); } return responseJson; } }