浏览代码

Merge remote-tracking branch 'remotes/liujiankang/master'

# Conflicts:
#	watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java
#	watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java
#	watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java
#	watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml
liujiankang 7 年之前
父节点
当前提交
8fb4c324b0
共有 23 个文件被更改,包括 835 次插入86 次删除
  1. 9 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachinePartsService.java
  2. 19 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineSupplierService.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. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachinePartsServiceImpl.java
  6. 25 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineSupplierServiceImpl.java
  7. 49 40
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java
  8. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsBomServiceImpl.java
  9. 11 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachinePartsMapper.java
  10. 19 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineSupplierMapper.java
  11. 1 1
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java
  12. 4 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsBomMapper.java
  13. 66 18
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml
  14. 22 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineSupplierMapper.xml
  15. 3 1
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  16. 14 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachinePartsController.java
  17. 118 2
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsBomController.java
  18. 1 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminPtsEmployeeController.java
  19. 1 0
      watero-rst-web/src/main/resources/watero-rst-orm.xml
  20. 209 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/add_bom.ftl
  21. 3 3
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/bom_list.ftl
  22. 163 0
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/bom/update_bom.ftl
  23. 73 20
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/ptras_add.ftl

+ 9 - 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,11 @@ public interface MachinePartsService {
      * 添加机器零件
      * **/
     Integer addMachineParts(PtsComponents ptsComponents);
+
+    /**
+     * 查询单个机器零件信息
+     * **/
+    PtsComponents getmachineParts(PtsComponents ptsComponents);
+    //获取所有的零件
+    List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
 }

+ 19 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineSupplierService.java

@@ -0,0 +1,19 @@
+package com.iamberry.rst.faces.pts;
+
+
+import com.iamberry.rst.core.pts.PtsComponents;
+import com.iamberry.rst.core.pts.PtsSupplier;
+
+import java.util.List;
+
+/**
+ * 供应商管理
+ * Created by LJK on 2017年9月25日11:17:29.
+ */
+public interface MachineSupplierService {
+    /**
+     * 查询所有供应商
+     *
+     * **/
+    List<PtsSupplier> listMachineSupplier();
+}

+ 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);
+
 }

+ 10 - 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,12 @@ public class MachinePartsServiceImpl implements MachinePartsService {
     public Integer addMachineParts(PtsComponents ptsComponents) {
         return machinePartsMapper.addMachineParts(ptsComponents);
     }
+
+    @Override
+    public PtsComponents getmachineParts(PtsComponents ptsComponents) {
+        return machinePartsMapper.getmachineParts(ptsComponents);
+    }
+    public List<PtsComponents> listPtsComponents(PtsComponents ptsComponents){
+        return machinePartsMapper.listPtsComponents(ptsComponents);
+    }
 }

+ 25 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineSupplierServiceImpl.java

@@ -0,0 +1,25 @@
+package com.iamberry.rst.service.pts;
+
+import com.iamberry.rst.core.pts.PtsSupplier;
+import com.iamberry.rst.faces.pts.MachineSupplierService;
+import com.iamberry.rst.service.pts.mapper.MachineSupplierMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * 机器零件管理
+ * Created by LJK on 2017年9月25日11:17:29.
+ */
+@Service
+public class MachineSupplierServiceImpl implements MachineSupplierService {
+    @Autowired
+    private MachineSupplierMapper machineSupplierMapper;
+
+    @Override
+    public List<PtsSupplier> listMachineSupplier() {
+        return machineSupplierMapper.listMachineSupplier();
+    }
+}

+ 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;
+    }
 }

+ 11 - 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,13 @@ public interface MachinePartsMapper {
      * 添加机器零件
      * **/
     Integer addMachineParts(PtsComponents ptsComponents);
+
+    /**
+     * 查询单个机器零件信息
+     * **/
+    PtsComponents getmachineParts(PtsComponents ptsComponents);
+
+    //获取所有的零件
+    List<PtsComponents> listPtsComponents(PtsComponents ptsComponents);
+
 }

+ 19 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineSupplierMapper.java

@@ -0,0 +1,19 @@
+package com.iamberry.rst.service.pts.mapper;
+
+
+import com.iamberry.rst.core.pts.PtsSupplier;
+
+import java.util.List;
+
+/**
+ * 供应商管理
+ * Created by LJK on 2017年9月25日11:17:29.
+ */
+public interface MachineSupplierMapper {
+
+    /**
+     * 查询所有供应商
+     *
+     * **/
+   List<PtsSupplier> listMachineSupplier();
+}

+ 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);
+
 }

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

@@ -1,21 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.iamberry.rst.service.pts.mapper.MachinePartsMapper">
-    <!--<select id="getDevice" parameterType="Integer" resultType="PtsDevice">
-        SELECT
-        device_id AS deviceId,
-        device_number AS deviceNumber,
-        device_name AS deviceName,
-        device_date AS  deviceDate,
-        device_status AS deviceStatus,
-        device_remake AS  deviceRemake,
-        device_create_time AS deviceCreateTime,
-        device_update_time AS deviceUpdateTime
-        FROM
-        tb_rst_pts_device
-        WHERE
-        device_id = #{deviceId}
-    </select>-->
+
     <insert id="addMachineParts" parameterType="PtsComponents">
         INSERT INTO tb_rst_pts_components
         (supplier_id,produce_id,components_no,components_name,components_type,
@@ -23,8 +9,70 @@
         components_specification,components_img,components_status,components_desc,
         components_create_time)
         VALUES
-        (supplierId,produceId,componentsNo,componentsName,componentsType,componentsCost,componentsWeight
-        ,componentsMaterial,componentsMbsc,componentsSpecification,componentsImg,componentsStatus,
-        componentsDesc,componentsCreateTime)
+        (#{supplierId},#{produceId},#{componentsNo},#{componentsName},#{componentsType},#{componentsCost},#{componentsWeight}
+        ,#{componentsMaterial},#{componentsMbsc},#{componentsSpecification},#{componentsImg},#{componentsStatus},
+        #{componentsDesc},#{componentsCreateTime})
     </insert>
+
+    <select id="getmachineParts" parameterType="PtsComponents" resultType="PtsComponents">
+        SELECT
+        components_id AS componentsId,
+        supplier_id AS supplierId,
+        produce_id AS produceId,
+        components_no AS  componentsNo,
+        components_name AS componentsName,
+        components_type AS  componentsType,
+        components_cost AS componentsCost,
+        components_weight AS componentsWeight,
+        components_material AS componentsMaterial,
+        components_mbsc AS componentsMbsc,
+        components_specification AS componentsSpecification,
+        components_img AS componentsImg,
+        components_status AS componentsStatus,
+        components_desc AS componentsDesc,
+        components_create_time AS componentsCreateTime,
+        components_update_time AS componentsUpdateTime
+        FROM
+        tb_rst_pts_components
+        <where>
+            <if test="produceId != null and produceId != ''">
+                produce_id = #{produceId}
+            </if>
+            <if test="componentsStatus != null and componentsStatus != ''">
+                AND components_status = #{componentsStatus}
+            </if>
+            <if test="componentsNo != null and componentsNo != ''">
+                AND components_no = #{componentsNo}
+        </if>
+        </where>
+    </select>
+    <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>

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

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.rst.service.pts.mapper.MachineSupplierMapper">
+
+
+
+    <select id="listMachineSupplier"  resultType="PtsSupplier">
+        SELECT
+        supplier_id AS supplierId,
+        supplier_name AS supplierName,
+        supplier_abbreviation AS supplierAbbreviation,
+        supplier_address AS  supplierAddress,
+        supplier_contact_person AS supplierContactPerson,
+        supplier_tel AS  supplierTel,
+        supplier_phone AS supplierPhone,
+        supplier_email AS supplierEmail,
+        supplier_create_time AS supplierCreateTime,
+        supplier_update_time AS supplierUpdateTime
+        FROM
+        tb_rst_pts_supplier
+    </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) ){

+ 14 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachinePartsController.java

@@ -2,13 +2,16 @@ package com.iamberry.rst.controllers.pts;
 
 import com.iamberry.rst.core.pts.Produce;
 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.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.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
@@ -26,6 +29,9 @@ public class AdminMachinePartsController {
 
     @Autowired
     private ProduceService produceService;
+
+    @Autowired
+    private MachineSupplierService machineSupplierService;
     /**
      * 进入添加机器零件页面
      * **/
@@ -35,12 +41,15 @@ public class AdminMachinePartsController {
         ModelAndView mv = new ModelAndView("pts/machinePtras/ptras_add");
         List<Produce> list = produceService.getProduceList();
         mv.addObject("produceList", list);
+        List<PtsSupplier> listSupplier = machineSupplierService.listMachineSupplier();
+        mv.addObject("listSupplier", listSupplier);
         return mv;
     }
 
     /**
      * 添加机器零件
      * **/
+    @ResponseBody
     @RequiresPermissions("machineParts:add:machineParts")
     @RequestMapping("/add_machineParts")
     public ResponseJson addMachineParts(HttpServletRequest request,PtsComponents ptsComponents){
@@ -49,6 +58,11 @@ public class AdminMachinePartsController {
             responseJson.setReturnCode(500);
             return responseJson;
         }
+        PtsComponents components =  machinePartsService.getmachineParts(ptsComponents);
+        if(components != null){
+            responseJson.setReturnCode(500);
+            return responseJson;
+        }
         ptsComponents.setComponentsCost(ptsComponents.getComponentsCost() * 100);//元转换为分
         ptsComponents.setComponentsCreateTime(new Date());
         Integer msg =  machinePartsService.addMachineParts(ptsComponents);

+ 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
      */

+ 1 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -72,5 +72,6 @@
 		<mapper resource="com/iamberry/rst/service/pts/mapper/equipmentMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/pts/mapper/ptsBomMapper.xml"/>
 		<mapper resource="com/iamberry/rst/service/pts/mapper/machinePartsMapper.xml"/>
+		<mapper resource="com/iamberry/rst/service/pts/mapper/machineSupplierMapper.xml"/>
 	</mappers>
 </configuration>

+ 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>

+ 73 - 20
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machinePtras/ptras_add.ftl

@@ -15,7 +15,7 @@
 </head>
 <body>
 <article class="page-container">
-	<form action="" method="post" class="form form-horizontal" id="form-member-add">
+	<form action="" method="post" class="form form-horizontal" id="form-parts-add">
 
         <div class="row cl">
             <label class="form-label col-xs-4 col-sm-3">所属机器:</label>
@@ -48,9 +48,14 @@
         <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="city">
-					<option value="1">刘志伟</option>
-					<option value="2">汪小明</option>
+				<select class="select" size="1" name="supplierId" id="supplierId">
+                <#if (listSupplier ?size > 0)>
+                    <#list listSupplier as list>
+                        <option value ="${list.supplierId}">${list.supplierName}</option>
+                    </#list>
+                <#else >
+                    <option value ="">暂无供应商,请到供应商列表添加供应商</option>
+                </#if>
 				</select>
 				</span> </div>
         </div>
@@ -168,37 +173,85 @@
 		increaseArea: '20%'
 	});
 	
-	$("#form-member-add").validate({
+	$("#form-parts-add").validate({
 		rules:{
-			username:{
+            produceId:{
+                required:true
+            },
+            componentsNo:{
 				required:true,
 				minlength:2,
-				maxlength:16
-			},
-			sex:{
-				required:true,
-			},
-			mobile:{
-				required:true,
-				isMobile:true,
+				maxlength:11
 			},
-			email:{
+            componentsName:{
 				required:true,
-				email:true,
+                minlength:2,
+                maxlength:30
 			},
-			uploadfile:{
+            componentsCost:{
 				required:true,
+                minlength:1,
+                maxlength:11
 			},
-			
+            componentsWeight:{
+                required:true,
+                minlength:1,
+                maxlength:11
+            },
+            componentsMaterial:{
+                required:true,
+                minlength:1,
+                maxlength:30
+            },
+            componentsMbsc:{
+                required:true,
+                minlength:1,
+                maxlength:1
+            },
+            componentsSpecification:{
+                required:true,
+                minlength:1,
+                maxlength:50
+            },
+            componentsImg:{
+                required:true,
+                minlength:1,
+                maxlength:100
+            },
+            componentsDesc:{
+                minlength:1,
+                maxlength:100
+            }
 		},
 		onkeyup:false,
 		focusCleanup:true,
 		success:"valid",
 		submitHandler:function(form){
+
 			//$(form).ajaxSubmit();
-			var index = parent.layer.getFrameIndex(window.name);
+            //var index = parent.layer.getFrameIndex(window.name);
 			//parent.$('.btn-refresh').click();
-			parent.layer.close(index);
+            //parent.layer.close(index);
+            $.ajax({
+                cache: true,
+                type: "POST",
+                data: $("#form-parts-add").serialize(),
+                url: "${path}/admin/machineParts/add_machineParts",
+                async: false,
+                success: function(data){
+                    alert(data.returnCode);
+                    if (data.returnCode == 200) {
+                        layer.msg('添加成功!', {icon: 1, time: 2000});
+
+                    }else{
+                        layer.msg('添加失败!', {icon: 2, time: 2000});
+                    }
+                },
+                error: function(XmlHttpRequest, textStatus, errorThrown){
+                    layer.msg('添加失败!', {icon: 2, time: 2000});
+                }
+            });
+
 		}
 	});
 });