wangxiaoming 7 vuotta sitten
vanhempi
commit
f7069ba5bb
17 muutettua tiedostoa jossa 615 lisäystä ja 49 poistoa
  1. 1 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineVersion.java
  2. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java
  3. 3 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/ProduceService.java
  4. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsBomService.java
  5. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java
  6. 49 40
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java
  7. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsBomServiceImpl.java
  8. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java
  9. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java
  10. 4 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsBomMapper.java
  11. 30 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml
  12. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  13. 118 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsBomController.java
  14. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsEmployeeController.java
  15. 209 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/add_bom.ftl
  16. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_list.ftl
  17. 163 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/update_bom.ftl

+ 1 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachineVersion.java

@@ -19,7 +19,7 @@ public class PtsMachineVersion implements Serializable {
 
     private String machineVersionContent;//更新内容
 
-    private Integer machineVersionType;//版本类型 1:硬件版本; 2:软件版本
+    private Integer machineVersionType;//版本类型  1:软件版本
 
     private Date machineVersionCreateTime;//创建时间
 

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java

@@ -3,6 +3,8 @@ package com.iamberry.rst.faces.pts;
 
 import com.iamberry.rst.core.pts.PtsComponents;
 
+import java.util.List;
+
 /**
  * 机器零件管理
  * Created by LJK on 2017年9月25日11:17:29.
@@ -12,4 +14,7 @@ public interface MachinePartsService {
      * 添加机器零件
      * **/
     Integer addMachineParts(PtsComponents ptsComponents);
+
+    //获取所有的零件
+    List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
 }

+ 3 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/ProduceService.java

@@ -15,6 +15,9 @@ public interface ProduceService {
     //获取生产产品列表
     List<Produce> getProduceList();
 
+    //获取生产产品列表
+    List<Produce> getProduceList(Produce produce);
+
     //获取生产产品,产品工序,工序节点 -- app
     List<Produce> getAllProduceList(Integer employeeId);
 

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsBomService.java

@@ -3,6 +3,8 @@ package com.iamberry.rst.faces.pts;
 import com.github.pagehelper.PageHelper;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.pts.PtsBom;
+import com.iamberry.rst.core.pts.PtsBomComponents;
+import com.iamberry.rst.core.pts.PtsComponents;
 import com.iamberry.rst.core.pts.PtsEmployee;
 
 import java.util.List;
@@ -12,4 +14,7 @@ public interface PtsBomService {
     //查询bom单列表
     PagedResult<PtsBom> listPtsBom(int pageNO, int pageSize, PtsBom ptsBom, boolean isTotalNum);
 
+    //添加bom单
+    Integer savePtsBom(PtsBom ptsBom);
+
 }

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java

@@ -7,6 +7,8 @@ import com.iamberry.rst.service.pts.mapper.MachinePartsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * 机器零件管理
@@ -21,4 +23,9 @@ public class MachinePartsServiceImpl implements MachinePartsService {
     public Integer addMachineParts(PtsComponents ptsComponents) {
         return machinePartsMapper.addMachineParts(ptsComponents);
     }
+
+    @Override
+    public List<PtsComponents> listPtsComponents(PtsComponents ptsComponents){
+        return machinePartsMapper.listPtsComponents(ptsComponents);
+    }
 }

+ 49 - 40
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java

@@ -4,7 +4,6 @@ import com.iamberry.rst.core.pts.ProcessNode;
 import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.core.pts.ProduceProcess;
 import com.iamberry.rst.faces.pts.ProduceService;
-import com.iamberry.rst.service.product.mapper.ProductMapper;
 import com.iamberry.rst.service.pts.mapper.ProduceMapper;
 import com.iamberry.rst.util.ProduceNoUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,16 +22,21 @@ import java.util.List;
 public class ProduceServiceImpl implements ProduceService {
 
     @Autowired
-    private ProduceMapper produceMapper;
+    public ProduceMapper produceMapper;
 
     //获取生产产品列表
-    public  List<Produce> getProduceList() {
-        return produceMapper.getProduceList();
+    public List<Produce> getProduceList() {
+        Produce produce = new Produce();
+        return produceMapper.getProduceList(produce);
     }
 
+    //获取生产产品列表
+    public List<Produce> getProduceList(Produce produce) {
+        return produceMapper.getProduceList(produce);
+    }
 
     //获取生产产品,产品工序,工序节点
-    public List<Produce> getAllProduceList(Integer employeeId){
+    public List<Produce> getAllProduceList(Integer employeeId) {
         return produceMapper.getAllProduceList(employeeId);
     }
 
@@ -42,12 +46,12 @@ public class ProduceServiceImpl implements ProduceService {
     }
 
     //获取单个产品
-    public Produce getProduce(Produce produce){
+    public Produce getProduce(Produce produce) {
         return produceMapper.getProduceByPro(produce);
     }
 
     @Override
-    public ProduceProcess getProduceProcess(Integer produceId,String processNo) {
+    public ProduceProcess getProduceProcess(Integer produceId, String processNo) {
         ProduceProcess produceProcess = new ProduceProcess();
         produceProcess.setProduceId(produceId);
         produceProcess.setProcessNo(processNo);
@@ -55,7 +59,7 @@ public class ProduceServiceImpl implements ProduceService {
     }
 
     @Override
-    public ProcessNode getprocessNode(Integer ProcessId,String nodeNo) {
+    public ProcessNode getprocessNode(Integer ProcessId, String nodeNo) {
         ProcessNode processNode = new ProcessNode();
         processNode.setProcessId(ProcessId);
         processNode.setNodeNo(nodeNo);
@@ -68,30 +72,30 @@ public class ProduceServiceImpl implements ProduceService {
     }
 
     //获取所有的节点操作
-    public List<ProcessNode> listProcessNode(ProcessNode processNode){
+    public List<ProcessNode> listProcessNode(ProcessNode processNode) {
         return produceMapper.listProcessNode(processNode);
     }
 
     //添加产品
     @Transactional
-    public Integer saveProduce(Produce produce){
-        if(0 == produce.getProduceStatus()){
+    public Integer saveProduce(Produce produce) {
+        if (0 == produce.getProduceStatus()) {
             produce.setProduceNo(ProduceNoUtil.NO_NUMBER);
-        }else{
+        } else {
             produce.setProduceNo(ProduceNoUtil.getProduceNo(produceMapper));
         }
         int flag = produceMapper.saveProduce(produce);
         Integer produceId = produce.getProduceId(); // 获取产品主键
 
         int sort = 1;   //专用排序字段
-        for (int i=0; i<produce.getProcess().size();i++){
+        for (int i = 0; i < produce.getProcess().size(); i++) {
             produce.getProcess().get(i).setProduceId(produceId);    //产品id
             produce.getProcess().get(i).setProcessNo(ProduceNoUtil.getProcessNo(i));  //工序编号
             produce.getProcess().get(i).setProcessStatus(1);    //状态
 
-            if(produce.getProcess().get(i).getProcessType() == 2){      //修理工序的排序字段为99
+            if (produce.getProcess().get(i).getProcessType() == 2) {      //修理工序的排序字段为99
                 produce.getProcess().get(i).setProcessSort(99);  //排序字段
-            }else{
+            } else {
                 produce.getProcess().get(i).setProcessSort(sort);  //排序字段
                 sort++;
             }
@@ -99,7 +103,7 @@ public class ProduceServiceImpl implements ProduceService {
             ProduceProcess produceProcess = produce.getProcess().get(i);
             this.saveProduceProcess(produceProcess);
             Integer processId = produceProcess.getProcessId();  //获取工序主键
-            for(int j=0; j<produceProcess.getNodes().size();j++){
+            for (int j = 0; j < produceProcess.getNodes().size(); j++) {
                 produceProcess.getNodes().get(j).setProduceId(produceId);
                 produceProcess.getNodes().get(j).setProcessId(processId);
                 produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
@@ -110,41 +114,42 @@ public class ProduceServiceImpl implements ProduceService {
     }
 
     //添加产品工序
-    public Integer saveProduceProcess(ProduceProcess produceProcesses){
+    public Integer saveProduceProcess(ProduceProcess produceProcesses) {
         int flag = produceMapper.saveProduceProcess(produceProcesses);
         return flag;
     }
 
     //添加产品工序操作
-    public Integer saveProcessNodeList(List<ProcessNode> processNodeList){
+    public Integer saveProcessNodeList(List<ProcessNode> processNodeList) {
         int flag = 0;
-        if (processNodeList.size()>0)
+        if (processNodeList.size() > 0)
             flag = produceMapper.saveProcessNodeList(processNodeList);
         return flag;
     }
 
     /**
      * 修改产品
+     *
      * @param produce
      * @return
      */
     @Transactional
-    public Integer updateProduce(Produce produce,String delProcessIds,String delNodeIds){
-        if(0 == produce.getProduceStatus()){
+    public Integer updateProduce(Produce produce, String delProcessIds, String delNodeIds) {
+        if (0 == produce.getProduceStatus()) {
             produce.setProduceNo(ProduceNoUtil.NO_NUMBER);
-        }else{
+        } else {
             produce.setProduceNo(ProduceNoUtil.getProduceNo(produceMapper));
         }
         //修改产品
         int flag = produceMapper.updateProduce(produce);
 
         //删除的工序
-        if (delProcessIds != null && !"".equals(delProcessIds)){
+        if (delProcessIds != null && !"".equals(delProcessIds)) {
             String delProcessId[] = delProcessIds.split(",");
             this.delProcess(delProcessId);
         }
         //删除节点操作
-        if (delNodeIds != null && !"".equals(delNodeIds)){
+        if (delNodeIds != null && !"".equals(delNodeIds)) {
             String delNodeId[] = delNodeIds.split(",");
             this.delNode(delNodeId);
         }
@@ -156,40 +161,40 @@ public class ProduceServiceImpl implements ProduceService {
         List<ProduceProcess> updateProcessList = new ArrayList<ProduceProcess>();
         List<ProcessNode> updateNodeList = new ArrayList<ProcessNode>();
         List<ProcessNode> addNodeList = new ArrayList<ProcessNode>();
-        for (int i=0; i<produce.getProcess().size();i++){
+        for (int i = 0; i < produce.getProcess().size(); i++) {
 
             ProduceProcess produceProcess = produce.getProcess().get(i);
             produceProcess.setProcessNo(ProduceNoUtil.getProcessNo(i));  //工序编号
-            if(produce.getProcess().get(i).getProcessType() == 2){      //修理工序的排序字段为99
+            if (produce.getProcess().get(i).getProcessType() == 2) {      //修理工序的排序字段为99
                 produce.getProcess().get(i).setProcessSort(99);  //排序字段
-            }else{
+            } else {
                 produce.getProcess().get(i).setProcessSort(sort);  //排序字段
                 sort++;
             }
 
             // 新增的工序/操作的id值都为 0 ;
-            if(0 == produceProcess.getProcessId()){     //新增的节点
+            if (0 == produceProcess.getProcessId()) {     //新增的节点
                 produce.getProcess().get(i).setProduceId(produceId);    //产品id
                 produce.getProcess().get(i).setProcessStatus(1);    //状态
                 this.saveProduceProcess(produceProcess);
                 Integer processId = produceProcess.getProcessId();  //获取工序主键
-                for(int j=0; j<produceProcess.getNodes().size();j++){
+                for (int j = 0; j < produceProcess.getNodes().size(); j++) {
                     produceProcess.getNodes().get(j).setProduceId(produceId);
                     produceProcess.getNodes().get(j).setProcessId(processId);
                     produceProcess.getNodes().get(j).setNodeNo(ProduceNoUtil.getNodeNo(j)); //节点编号
                     addNodeList.add(produceProcess.getNodes().get(j));
                 }
-            }else{      //修改节点
+            } else {      //修改节点
                 Integer processId = produceProcess.getProcessId();
                 updateProcessList.add(produceProcess);
-                for(int j=0; j<produceProcess.getNodes().size();j++){
+                for (int j = 0; j < produceProcess.getNodes().size(); j++) {
                     ProcessNode processNode = produceProcess.getNodes().get(j);
-                    if(0 == processNode.getNodeId()){       //新增节点操作1
+                    if (0 == processNode.getNodeId()) {       //新增节点操作1
                         processNode.setProduceId(produceId);
                         processNode.setProcessId(processId);
                         processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
                         addNodeList.add(processNode);
-                    }else{                              //修改节点操作1
+                    } else {                              //修改节点操作1
                         processNode.setNodeNo(ProduceNoUtil.getNodeNo(j));
                         updateNodeList.add(processNode);
                     }
@@ -204,11 +209,12 @@ public class ProduceServiceImpl implements ProduceService {
 
     /**
      * 删除工序
+     *
      * @return
      */
-    public Integer delProcess(String delProcess[]){
+    public Integer delProcess(String delProcess[]) {
         List<ProduceProcess> produceProcessesList = new ArrayList<ProduceProcess>();
-        for (String processId : delProcess){
+        for (String processId : delProcess) {
             ProduceProcess produceProcess = new ProduceProcess();
             produceProcess.setProcessId(Integer.valueOf(processId));
             produceProcess.setProcessNo("#");       //删除的工序  编号为#
@@ -221,32 +227,35 @@ public class ProduceServiceImpl implements ProduceService {
 
     /**
      * 删除节点操作
+     *
      * @param delNodeId
      * @return
      */
-    public Integer delNode(String delNodeId[]){
+    public Integer delNode(String delNodeId[]) {
         Integer flag = produceMapper.delNode(delNodeId);
         return flag;
     }
 
     /**
      * 修改工序
+     *
      * @return
      */
-    public Integer updateProcessList(List<ProduceProcess> produceProcessesList){
+    public Integer updateProcessList(List<ProduceProcess> produceProcessesList) {
         Integer flag = 0;
-        if (produceProcessesList.size()>0)
+        if (produceProcessesList.size() > 0)
             flag = produceMapper.updateProcessList(produceProcessesList);
         return flag;
     }
 
     /**
      * 修改节点操作
+     *
      * @return
      */
-    public Integer updateProcessNodeList(List<ProcessNode> updateNodeList){
+    public Integer updateProcessNodeList(List<ProcessNode> updateNodeList) {
         Integer flag = 0;
-        if (updateNodeList.size()>0)
+        if (updateNodeList.size() > 0)
             flag = produceMapper.updateProcessNodeList(updateNodeList);
         return flag;
     }

+ 7 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsBomServiceImpl.java

@@ -26,4 +26,11 @@ public class PtsBomServiceImpl implements PtsBomService {
         List<PtsBom> list = ptsBomMapper.listPtsBom(ptsBom);
         return PageUtil.getPage(list);
     }
+
+    //添加bom单
+    @Override
+    public Integer savePtsBom(PtsBom ptsBom){
+        Integer flag = ptsBomMapper.savePtsBom(ptsBom);
+        return flag;
+    }
 }

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java

@@ -3,6 +3,8 @@ package com.iamberry.rst.service.pts.mapper;
 
 import com.iamberry.rst.core.pts.PtsComponents;
 
+import java.util.List;
+
 /**
  * 机器零件管理
  * Created by LJK on 2017年9月25日11:17:29.
@@ -13,4 +15,8 @@ public interface MachinePartsMapper {
      * 添加机器零件
      * **/
     Integer addMachineParts(PtsComponents ptsComponents);
+
+    //获取所有的零件
+    List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
+
 }

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java

@@ -13,7 +13,7 @@ import java.util.List;
 public interface ProduceMapper {
 
     //获取生产产品列表
-    List<Produce> getProduceList();
+    List<Produce> getProduceList(Produce produce);
 
     //获取生产产品,产品工序,工序节点
     List<Produce> getAllProduceList(Integer employeeId);

+ 4 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsBomMapper.java

@@ -1,5 +1,6 @@
 package com.iamberry.rst.service.pts.mapper;
 
+import com.iamberry.rst.core.pts.Produce;
 import com.iamberry.rst.core.pts.PtsBom;
 
 import java.util.List;
@@ -12,4 +13,7 @@ public interface PtsBomMapper {
     //查询bom单列表
     List<PtsBom> listPtsBom(PtsBom ptsBom);
 
+    //添加bom单
+    Integer savePtsBom(PtsBom ptsBom);
+
 }

+ 30 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml

@@ -27,4 +27,34 @@
         ,componentsMaterial,componentsMbsc,componentsSpecification,componentsImg,componentsStatus,
         componentsDesc,componentsCreateTime)
     </insert>
+
+    <select id="listPtsComponents" parameterType="PtsComponents" resultType="PtsComponents" >
+        SELECT
+            t.components_id AS componentsId,
+            t.supplier_id AS supplierId,
+            t.produce_id AS produceId,
+            t.components_no AS componentsNo,
+            t.components_name AS componentsName,
+            t.components_type AS componentsType,
+            t.components_cost AS componentsCost,
+            t.components_weight AS componentsWeight,
+            t.components_material AS componentsMaterial,
+            t.components_mbsc AS componentsMbsc,
+            t.components_specification AS componentsSpecification,
+            t.components_img AS  componentsImg,
+            t.components_status AS componentsStatus,
+            t.components_desc AS componentsDesc,
+            t.components_create_time AS componentsCreateTime,
+            t.components_update_time AS componentsUpdateTime
+        FROM
+            tb_rst_pts_components t
+        <where>
+            <if test="produceId !=null">
+                AND t.produce_id = #{produceId}
+            </if>
+            <if test="componentsStatus !=null">
+                AND t.components_status = #{componentsStatus}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 3 - 1
watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java

@@ -35,7 +35,9 @@ public class ProduceNoUtil {
         for (String nums : NUMBER){
             list.add(nums);
         }
-        List<Produce> produceList = produceMapper.getProduceList();
+        Produce produce = new Produce();
+        produce.setProduceStatus(1);
+        List<Produce> produceList = produceMapper.getProduceList(produce);
         for (int k=0 ; k<produceList.size(); k++) {
             String produceNo = produceList.get(k).getProduceNo();
             if (produceNo != null && !"".equals(produceNo) && !"#".equals(produceNo) ){

+ 118 - 2
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsBomController.java

@@ -1,19 +1,24 @@
 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.*;
+import com.iamberry.rst.faces.pts.MachinePartsService;
 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.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 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.ArrayList;
 import java.util.List;
 
 /**
@@ -30,6 +35,9 @@ public class AdminPtsBomController {
     @Autowired
     private ProduceService produceService;
 
+    @Autowired
+    private MachinePartsService machinePartsService;
+
     /**
      * 获取bom单列表
      *
@@ -56,4 +64,112 @@ public class AdminPtsBomController {
         return mv;
     }
 
+    /**
+     * 跳转到添加bom单页面
+     *
+     * @return
+     */
+    @RequiresPermissions("bom:add:bom")
+    @RequestMapping(value="/to_add_bom")
+    public ModelAndView toAddBom(String employeeId, HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("pts/bom/add_bom");
+
+        //获取产品集合,用于页面选择产品
+        List<Produce> produceList = produceService.getProduceList();
+
+        mv.addObject("produceList",produceList);
+        return mv;
+    }
+
+    /**
+     * 添加员工
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("bom:add:bom")
+    @RequestMapping(value="/save_bom")
+    public ResponseJson saveEmployee(PtsBom ptsBom, PtsBomComponents ptsBomComponents, HttpServletRequest request) {
+
+        Integer flag = ptsBomService.savePtsBom(ptsBom);
+        if (flag < 1 ){
+            return new ResponseJson(500, "ERROR", 500);
+        }else {
+            return new ResponseJson(200, "SUCCESS", 200);
+        }
+    }
+
+    /**
+     * 获取所有零件
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions(value={"bom:add:bom","bom:update:bom"},logical= Logical.OR)
+    @RequestMapping(value="/get_listComponents")
+    public ResponseJson listComponents(HttpServletRequest request) {
+
+        String produceId = request.getParameter("produceId");
+        if (produceId == null || "".equals(produceId)){
+            return new ResponseJson(500, "ERROR", 500);
+        }
+        PtsComponents ptsComponents = new PtsComponents();
+        ptsComponents.setProduceId(Integer.valueOf(produceId));
+        ptsComponents.setComponentsStatus(1);
+        //查询所有零件
+        List<PtsComponents> ptsComponentsList = machinePartsService.listPtsComponents(ptsComponents);
+
+        if (ptsComponentsList.size() > 0 ){
+            ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
+            rj.addResponseKeyValue("ptsComponentsList","ptsComponentsList");
+            return rj;
+        }else {
+            return new ResponseJson(500, "ERROR", 500);
+        }
+    }
+
+    /**
+     * 跳转到修改bom单页面
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("bom:update:bom")
+    @RequestMapping(value="/to_update_bom")
+    public ModelAndView toUpdateBom(String bomId, HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("pts/bom/update_bom");
+        if (bomId == null || "".equals(bomId)){
+            return mv;
+        }
+
+        //获取产品集合,用于页面选择产品
+        List<Produce> produceList = produceService.getProduceList();
+
+        //查询所有零件
+
+        mv.addObject("produceList",produceList);
+        return mv;
+    }
+
+    /**
+     * 修改bom
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequiresPermissions("bom:add:bom")
+    @RequestMapping(value="/update_bom")
+    public ResponseJson updateBom(PtsBom ptsBom, PtsBomComponents ptsBomComponents, HttpServletRequest request) {
+
+        Integer flag = ptsBomService.savePtsBom(ptsBom);
+
+
+        if (flag < 1 ){
+            return new ResponseJson(500, "ERROR", 500);
+        }else {
+            return new ResponseJson(200, "SUCCESS", 200);
+        }
+    }
+
+
 }

+ 1 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsEmployeeController.java

@@ -72,7 +72,7 @@ public class AdminPtsEmployeeController {
     }
 
     /**
-     *
+     * 判断编号占用
      * @param request
      * @return
      */

+ 209 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/add_bom.ftl

@@ -0,0 +1,209 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+<#include "/base/add_base.ftl">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
+    <style>
+    </style>
+    <title>添加Bom - Bom管理 - RST</title>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">&gt;</span> Bom管理
+    <span class="c-gray en">&gt;</span> 添加Bom
+    <a class="btn radius r"
+       style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
+       href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<article class="page-container" style="padding: 10px;width: 600px;margin: 0 auto;">
+    <form action="" method="post" class="form form-horizontal" id="form-member-add">
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">修改基础:</label>
+            <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
+				<select class="select" size="1" name="bomId">
+                    <option value="0">不选择</option>
+					<option value="1">净水机</option>
+					<option value="2">冲奶机</option>
+				</select>
+				</span>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">所属产品:</label>
+            <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
+				<select class="select" size="1" name="produceId">
+                <#if produceList?? &&  (produceList?size > 0) >
+                    <#list produceList as produce>
+                        <option value="${produce.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>
+                    </#list>
+                <#else>
+                    <option value="">暂时没有产品,需要到生产产品页面添加产品</option>
+                </#if>
+				</select>
+				</span>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <input type="text" class="input-text" value="" id="bomName" name="bomName"
+                       placeholder="请输入1-30位的名称,支持中文、字母、数字">
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">备注:</label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <textarea name="bomRemarks" id="bomRemarks" cols="" rows="" class="textarea"
+                          placeholder="Bom单备注,最多支持100字符" onKeyUp="$.Huitextarealength(this,100)"></textarea>
+                <p class="textarea-numberbar"><em class="textarea-length">0</em>/100</p>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom零件清单:</label>
+            <div class="formControls col-xs-8 col-sm-9 components">
+                <table class="table table-border table-bordered table-bg table-hover table-sort">
+                    <thead>
+                        <tr class="text-c">
+                            <th width="150">选择零件</th>
+                            <th width="60">零件数量</th>
+                            <th width="20">操作</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <tr class="text-c">
+                            <td>
+                                <select class="select" size="1" name="bomId" style="height: 30px;">
+                                    <option value="">选择零件</option>
+                                    <option value="1">净水机</option>
+                                </select>
+                            </td>
+                            <td>
+                                    <input type="text" class="input-text" value="" id="bomName" name="bomName" placeholder="零件数量">
+                            </td>
+                            <td>
+                                <a style="" href="javascript:void(0);" title="编辑" onclick="">
+                                    <i class="Hui-iconfont">&#xe609;</i>
+                                </a>
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+                <input class="btn btn-primary radius" type="button" value="&nbsp;&nbsp;新增零件&nbsp;&nbsp;" onclick="addComponents()">
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"></label>
+            <span class="c-red">*提示</span><span>:新增的Bom,需要批次选中该Bom单,才会生效!</span>
+        </div>
+        <div class="row cl">
+            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+                <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
+            </div>
+        </div>
+    </form>
+</article>
+<script type="text/javascript">
+
+    $(function () {
+        $('.skin-minimal input').iCheck({
+            checkboxClass: 'icheckbox-blue',
+            radioClass: 'iradio-blue',
+            increaseArea: '20%'
+        });
+
+        $("#form-member-add").validate({
+            rules: {
+                bomId: {
+                    required: true
+                },
+                produceId: {
+                    required: true
+                },
+                bomName: {
+                    required: true,
+                    minlength:1,
+                    maxlength:30
+                },
+                bomRemarks: {
+                    required: true,
+                    maxlength:30
+                }
+            },
+            onkeyup: false,
+            focusCleanup: true,
+            success: "valid",
+            submitHandler: function (form) {
+                //$(form).ajaxSubmit();
+                var index = parent.layer.getFrameIndex(window.name);
+                //parent.$('.btn-refresh').click();
+                parent.layer.close(index);
+            }
+        });
+    });
+
+    var allComponents;
+    
+    /* 添加零件 */
+    function addComponents() {
+        var tbody = $(".tbody");
+
+        if(allComponents == null){ //获取
+            allComponents = listComponent();
+        }
+
+        var html = '<tr class="text-c"> '
+                +'<td> '
+                +'<select class="select" size="1" name="" style="height: 30px;"> '
+                +'<option value="">选择零件</option> '
+                +' '
+                +'</select> '
+                +'</td> '
+                +'<td> '
+                +'<input type="text" class="input-text" value="" id="" name="" placeholder="零件数量"> '
+                +'</td> '
+                +'<td> '
+                +'<a style="" href="javascript:void(0);" title="编辑" onclick=""> '
+                +'<i class="Hui-iconfont">&#xe609;</i> '
+                +'</a> '
+                +'</td> '
+                +'</tr>';
+        
+    }
+
+    /*获取所有的零件*/
+    function  listComponent() {
+        $.ajax({
+            type: "POST",
+            data: data,
+            url: "${path}/admin/employee/get_listComponents",
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    window.location.href = '${path}//admin/employee/_employee_list'
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+            }
+        });
+    }
+</script>
+<!--/请在上方写此页面业务相关的脚本-->
+</body>
+</html>

+ 3 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_list.ftl

@@ -31,7 +31,7 @@
 <div class="page-container">
     <div class="text-c">
         <form action="${path}/admin/bom/_bom_list" method="post">
-            <button type="button" style="cursor:pointer; float: left;" class="my-btn-search" onclick="toAddEmployee();">增加Bom</button>
+            <button type="button" style="cursor:pointer; float: left;" class="my-btn-search" onclick="toAddBom();">增加Bom</button>
             <select class="my-select" name="produceId" style="height: 36px;width: 150px">
                 <option value ="">所有产品</option>
                 <#if produceList?? &&  (produceList?size > 0) >
@@ -164,8 +164,8 @@
     /**
      * 跳转到添加员工页面
      */
-    function toAddEmployee(){
-        window.location.href= "${path}/admin/employee/to_save_employee";
+    function toAddBom(){
+        window.location.href= "${path}/admin/bom//to_add_bom";
     }
 
     /**

+ 163 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/update_bom.ftl

@@ -0,0 +1,163 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+<#include "/base/add_base.ftl">
+    <link href="${path}/common/lib/jquery.ui/jquery-ui.css" rel="stylesheet" type="text/css"/>
+    <style>
+    </style>
+    <title>添加Bom - Bom管理 - RST</title>
+</head>
+<body>
+<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页
+    <span class="c-gray en">&gt;</span> Bom管理
+    <span class="c-gray en">&gt;</span> 添加Bom
+    <a class="btn radius r"
+       style="line-height:1.6em;margin-top:3px;background: #32a3d8;color: #fff;border:1px solid #32a3d8;"
+       href="javascript:location.replace(location.href);" title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
+</nav>
+<article class="page-container" style="padding: 10px;width: 600px;margin: 0 auto;">
+    <form action="" method="post" class="form form-horizontal" id="form-member-add">
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">修改基础:</label>
+            <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
+				<select class="select" size="1" name="bomId">
+                    <option value="0">不选择</option>
+					<option value="1">净水机</option>
+					<option value="2">冲奶机</option>
+				</select>
+				</span>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">所属产品:</label>
+            <div class="formControls col-xs-8 col-sm-9"> <span class="select-box">
+				<select class="select" size="1" name="produceId">
+                <#if produceList?? &&  (produceList?size > 0) >
+                    <#list produceList as produce>
+                        <option value="${produce.produceId!}" <#if produceId??><#if produceId ==produce.produceId >selected="selected"</#if></#if>>${produce.produceName!}</option>
+                    </#list>
+                <#else>
+                    <option value="">暂时没有产品,需要到生产产品页面添加产品</option>
+                </#if>
+				</select>
+				</span>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom名称:</label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <input type="text" class="input-text" value="" id="bomName" name="bomName"
+                       placeholder="请输入1-30位的名称,支持中文、字母、数字">
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3">备注:</label>
+            <div class="formControls col-xs-8 col-sm-9">
+                <textarea name="bomRemarks" id="bomRemarks" cols="" rows="" class="textarea"
+                          placeholder="Bom单备注,最多支持100字符" onKeyUp="$.Huitextarealength(this,100)"></textarea>
+                <p class="textarea-numberbar"><em class="textarea-length">0</em>/100</p>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>Bom零件清单:</label>
+            <div class="formControls col-xs-8 col-sm-9 components">
+                <table class="table table-border table-bordered table-bg table-hover table-sort">
+                    <thead>
+                        <tr class="text-c">
+                            <th width="150">选择零件</th>
+                            <th width="60">零件数量</th>
+                            <th width="20">操作</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <tr class="text-c">
+                            <td>
+                                <select class="select" size="1" name="bomId" style="height: 30px;">
+                                    <option value="">选择零件</option>
+                                    <option value="1">净水机</option>
+                                </select>
+                            </td>
+                            <td>
+                                    <input type="text" class="input-text" value="" id="bomName" name="bomName" placeholder="零件数量">
+                            </td>
+                            <td>
+                                <a style="" href="javascript:void(0);" title="编辑" onclick="">
+                                    <i class="Hui-iconfont">&#xe609;</i>
+                                </a>
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+
+        <div class="row cl">
+            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+                <input class="btn btn-primary radius" type="button" value="&nbsp;&nbsp;新增零件&nbsp;&nbsp;">
+            </div>
+        </div>
+
+        <div class="row cl">
+            <label class="form-label col-xs-4 col-sm-3"></label>
+            <span class="c-red">*提示</span><span>:新增的Bom,需要批次选中该Bom单,才会生效!</span>
+        </div>
+        <div class="row cl">
+            <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
+                <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
+            </div>
+        </div>
+    </form>
+</article>
+<script type="text/javascript">
+
+    $(function () {
+        $('.skin-minimal input').iCheck({
+            checkboxClass: 'icheckbox-blue',
+            radioClass: 'iradio-blue',
+            increaseArea: '20%'
+        });
+
+        $("#form-member-add").validate({
+            rules: {
+                bomId: {
+                    required: true
+                },
+                produceId: {
+                    required: true
+                },
+                bomName: {
+                    required: true,
+                    minlength:1,
+                    maxlength:30
+                },
+                bomRemarks: {
+                    required: true,
+                    maxlength:30
+                }
+            },
+            onkeyup: false,
+            focusCleanup: true,
+            success: "valid",
+            submitHandler: function (form) {
+                //$(form).ajaxSubmit();
+                var index = parent.layer.getFrameIndex(window.name);
+                //parent.$('.btn-refresh').click();
+                parent.layer.close(index);
+            }
+        });
+    });
+</script>
+<!--/请在上方写此页面业务相关的脚本-->
+</body>
+</html>