Parcourir la source

Merge remote-tracking branch 'liujiankang/master'

liujiankang il y a 7 ans
Parent
commit
f651786ace
24 fichiers modifiés avec 435 ajouts et 116 suppressions
  1. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/ProduceProcess.java
  2. 9 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachine.java
  3. 5 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineLogsService.java
  4. 10 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java
  5. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/ProduceService.java
  6. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsEmployeeService.java
  7. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineLogsServiceImpl.java
  8. 15 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java
  9. 10 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java
  10. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsEmployeeServiceImpl.java
  11. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineLogsMapper.java
  12. 9 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java
  13. 7 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ProduceMapper.java
  14. 5 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsEmployeeMapper.java
  15. 17 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineLogsMapper.xml
  16. 56 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/machineMapper.xml
  17. 39 4
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/produceMapper.xml
  18. 12 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/ptsEmployeeMapper.xml
  19. 78 8
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java
  20. 123 103
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java
  21. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl
  22. BIN
      watero-rst-web/src/main/webapp/common/images/index/admin-login.png
  23. BIN
      watero-rst-web/src/main/webapp/common/images/login/admin-login-bg.png
  24. BIN
      watero-rst-web/src/main/webapp/common/images/login/admin-loginform-bg.png

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/ProduceProcess.java

@@ -32,6 +32,8 @@ public class ProduceProcess implements Serializable {
     private String employeeName;            //员工名称
     private String deviceName;              //设备名称
 
+    private String employeeLine;            //员工拉线
+
     public String getEmployeeName() {
         return employeeName;
     }
@@ -169,6 +171,14 @@ public class ProduceProcess implements Serializable {
         this.json = json;
     }
 
+    public String getEmployeeLine() {
+        return employeeLine;
+    }
+
+    public void setEmployeeLine(String employeeLine) {
+        this.employeeLine = employeeLine;
+    }
+
     @Override
     public String toString() {
         return "ProduceProcess{" +

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/pts/PtsMachine.java

@@ -42,6 +42,7 @@ public class PtsMachine implements Serializable{
     private String  machineLine; //拉线
 
     private Integer machineSalesCompanyId; //销售公司主键
+    private Integer machineSalesCompanyName; //销售公司名称
 
     public Integer getMachineId() {
         return machineId;
@@ -242,4 +243,12 @@ public class PtsMachine implements Serializable{
     public void setMachineSalesCompanyId(Integer machineSalesCompanyId) {
         this.machineSalesCompanyId = machineSalesCompanyId;
     }
+
+    public Integer getMachineSalesCompanyName() {
+        return machineSalesCompanyName;
+    }
+
+    public void setMachineSalesCompanyName(Integer machineSalesCompanyName) {
+        this.machineSalesCompanyName = machineSalesCompanyName;
+    }
 }

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

@@ -2,6 +2,8 @@ package com.iamberry.rst.faces.pts;
 
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 
+import java.util.List;
+
 /**
  * 机器生产日志service
  * Created by LJK on 2017/8/29.
@@ -10,6 +12,9 @@ public interface MachineLogsService {
     //添加生产日志
     Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
 
+    //添加生产日志
+    Integer addMachineLogs(List<PtsMachineLogs> ptsMachineLogsList);
+
     //修改生产日志
     Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
 }

+ 10 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/MachineService.java

@@ -23,9 +23,13 @@ public interface MachineService {
     //修改机器信息
     Integer updateMachine(PtsMachine ptsMachine);
 
+    //修改机器销售信息
+    Integer updateMachineSalesInfo(PtsMachine ptsMachine);
+
     //查询机器列表
     PagedResult<PtsMachine> listMachine(PageRequest<PtsMachine> pageRequest);
 
+
     //查询最新机器
     List<PtsMachine> listLatestMachine(Integer machineId);
 
@@ -37,6 +41,12 @@ public interface MachineService {
     //分页查询机器打印列表
     PagedResult<PtsMachine> getPrintOrderList(int pageNO, int pageSize, PtsMachine ptsMachine, boolean isTotalNum);
 
+    //机器集合 -- webapp  模糊查询code
+    List<PtsMachine> listMachineWebApp(PtsMachine ptsMachine);
+
+    //查询当天的出库的机器台数
+    Integer machineNumberWebApp(PtsMachine ptsMachine);
+
     //机器集合
     List<PtsMachine> ListPtsMachine(PtsMachine ptsMachine);
 

+ 6 - 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> getAllProduceListToRam();
+
     //获取生产产品列表
     List<Produce> getProduceList(Produce produce);
 
@@ -61,4 +64,7 @@ public interface ProduceService {
      * @return
      */
     Produce getProduceByOne();
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcessAndNode(Integer produceId,String processNo);
 }

+ 6 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/PtsEmployeeService.java

@@ -63,4 +63,10 @@ public interface PtsEmployeeService {
      */
     PtsEmployee getEmployeeByEmployeeNo(String employeeNo);
 
+
+    /**
+     * 获取员工信息拉线
+     */
+    PtsEmployee getPtsEmployeeWebApp(PtsEmployee ptsEmployee);
+
 }

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

@@ -8,6 +8,8 @@ import com.iamberry.rst.service.pts.mapper.MachineLogsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * 机器生产流程日志管理
@@ -25,6 +27,11 @@ public class MachineLogsServiceImpl implements MachineLogsService {
     }
 
     @Override
+    public Integer addMachineLogs(List<PtsMachineLogs> ptsMachineLogsList) {
+        return machineLogsMapper.addMachineLogsList(ptsMachineLogsList);
+    }
+
+    @Override
     public Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs) {
         return machineLogsMapper.updateMachineLogs(ptsMachineLogs);
     }

+ 15 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/MachineServiceImpl.java

@@ -36,6 +36,11 @@ public class MachineServiceImpl implements MachineService {
     }
 
     @Override
+    public Integer updateMachineSalesInfo(PtsMachine ptsMachine) {
+        return machineMapper.updateMachineSalesInfo(ptsMachine);
+    }
+
+    @Override
     public PagedResult<PtsMachine> listMachine(PageRequest<PtsMachine> pageRequest) {
         PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal());
         List<PtsMachine> list = machineMapper.listMachine(pageRequest.getData());
@@ -70,6 +75,16 @@ public class MachineServiceImpl implements MachineService {
     }
 
     @Override
+    public List<PtsMachine> listMachineWebApp(PtsMachine ptsMachine) {
+        return machineMapper.listMachineWebApp(ptsMachine);
+    }
+
+    @Override
+    public Integer machineNumberWebApp(PtsMachine ptsMachine) {
+        return machineMapper.machineNumberWebApp(ptsMachine);
+    }
+
+    @Override
     public List<PtsMachineLogs> listMachineLogs(Integer machineId) {
         return machineMapper.listMachineLogs(machineId);
     }

+ 10 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/ProduceServiceImpl.java

@@ -30,6 +30,11 @@ public class ProduceServiceImpl implements ProduceService {
         return produceMapper.getProduceList(produce);
     }
 
+    @Override
+    public List<Produce> getAllProduceListToRam() {
+        return produceMapper.getAllProduceListToRam();
+    }
+
     //获取生产产品列表
     public List<Produce> getProduceList(Produce produce) {
         return produceMapper.getProduceList(produce);
@@ -270,4 +275,9 @@ public class ProduceServiceImpl implements ProduceService {
     public Produce getProduceByOne() {
         return produceMapper.getProduceByOne();
     }
+
+    @Override
+    public ProduceProcess getProduceProcessAndNode(Integer produceId, String processNo) {
+        return produceMapper.getProduceProcessAndNode(produceId,processNo);
+    }
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/PtsEmployeeServiceImpl.java

@@ -82,4 +82,9 @@ public class PtsEmployeeServiceImpl implements PtsEmployeeService {
     public  PtsEmployee getEmployeeByEmployeeNo(String employeeNo){
         return ptsEmployeeMapper.getEmployeeByEmployeeNo(employeeNo);
     }
+
+    @Override
+    public PtsEmployee getPtsEmployeeWebApp(PtsEmployee ptsEmployee) {
+        return ptsEmployeeMapper.getPtsEmployeeWebApp(ptsEmployee);
+    }
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineLogsMapper.java

@@ -2,6 +2,8 @@ package com.iamberry.rst.service.pts.mapper;
 
 import com.iamberry.rst.core.pts.PtsMachineLogs;
 
+import java.util.List;
+
 /**
  * 机器生产流程日志管理
  * Created by LJK on 2017/8/29.
@@ -10,6 +12,9 @@ public interface MachineLogsMapper {
         //添加生产日志
         Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
 
+        //添加生产日志list
+        Integer addMachineLogsList(List<PtsMachineLogs> ptsMachineLogsList);
+
         //修改生产日志
         Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
 }

+ 9 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/MachineMapper.java

@@ -19,9 +19,18 @@ public interface MachineMapper {
     //修改机器信息
     Integer updateMachine(PtsMachine ptsMachine);
 
+    //修改机器销售信息
+    Integer updateMachineSalesInfo(PtsMachine ptsMachine);
+
     //查询机器列表
     List<PtsMachine> listMachine(PtsMachine ptsMachine);
 
+    //查询机器列表--webapp
+    List<PtsMachine> listMachineWebApp(PtsMachine ptsMachine);
+
+    //查询当天的出库的机器台数
+    Integer machineNumberWebApp(PtsMachine ptsMachine);
+
     //查询最新机器
     List<PtsMachine> listLatestMachine(Integer machineId);
 

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

@@ -15,6 +15,9 @@ public interface ProduceMapper {
     //获取生产产品列表
     List<Produce> getProduceList(Produce produce);
 
+    //获取生产产品列表到内存
+    List<Produce> getAllProduceListToRam();
+
     //获取生产产品,产品工序,工序节点
     List<Produce> getAllProduceList(Integer employeeId);
 
@@ -79,4 +82,8 @@ public interface ProduceMapper {
      * @return
      */
     Produce getProduceByOne();
+
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcessAndNode(Integer produceId,String processNo);
 }

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/PtsEmployeeMapper.java

@@ -61,4 +61,9 @@ public interface PtsEmployeeMapper {
      */
     PtsEmployee getEmployeeByEmployeeNo(String employeeNo);
 
+    /**
+     * 获取员工信息拉线
+     */
+    PtsEmployee getPtsEmployeeWebApp(PtsEmployee ptsEmployee);
+
 }

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

@@ -15,6 +15,23 @@
         #{processName},#{deviceName},#{logsProcessStatus},#{logsErrorType}
         ,#{logsProcessPrompt},#{logsProcessTime},#{logsCreateTime})
     </insert>
+
+    <insert id="addMachineLogsList" parameterType="java.util.List" useGeneratedKeys="true">
+        INSERT INTO tb_rst_pts_machine_logs
+        (machine_id,employee_id,produce_id,
+        process_id,device_id,employee_name,
+        produce_name,process_name,device_name
+        ,logs_process_status,logs_error_type,
+        logs_process_prompt)
+        VALUES
+        <foreach collection="list" item="logs" index="index" separator="," open="" close="">
+            (#{logs.machineId},#{logs.employeeId},#{logs.produceId},
+            #{logs.processId},#{logs.deviceId},#{logs.employeeName},#{logs.produceName},
+            #{logs.processName},#{logs.deviceName},#{logs.logsProcessStatus},#{logs.logsErrorType}
+            ,#{logs.logsProcessPrompt})
+        </foreach>
+    </insert>
+
     <update id="updateMachineLogs" >
         UPDATE tb_rst_pts_machine_logs SET
         <if test="logsProcessPrompt != null and logsProcessPrompt != ''" >

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

@@ -58,6 +58,25 @@
         </where>
     </update>
 
+    <update id="updateMachineSalesInfo" parameterType="PtsMachine" >
+        UPDATE tb_rst_pts_machine
+        <set>
+            <if test="machineSalesDate != null and machineSalesDate != ''" >
+                machine_sales_date = #{machineSalesDate},
+            </if>
+            <if test="machineSalesState != null and machineSalesState != ''" >
+                machine_sales_state = #{machineSalesState},
+            </if>
+            <if test="machineSalesCompanyId != null and machineSalesCompanyId != ''" >
+                machine_sales_company_id = #{machineSalesCompanyId}
+            </if>
+        </set>
+        <where>
+                machine_barcode = #{machineBarcode}
+        </where>
+    </update>
+
+
     <select id="listMachine" parameterType="PtsMachine" resultType="PtsMachine">
         SELECT
             t.machine_id machineId,
@@ -96,6 +115,43 @@
         </where>
         order by machine_create_time desc
     </select>
+
+
+    <select id="listMachineWebApp" parameterType="PtsMachine" resultType="PtsMachine">
+        SELECT
+        t.machine_id machineId,
+        t.machine_barcode machineBarcode,
+        t.machine_sales_date machineSalesDate,
+        t.machine_sales_state machineSalesState,
+        t.machine_status machineStatus,
+        t.machine_sales_company_id machineSalesCompanyId,
+        trpsc.sales_company_name machineSalesCompanyName
+        FROM  tb_rst_pts_machine t
+        LEFT JOIN tb_rst_pts_sales_company trpsc ON t.machine_sales_company_id = trpsc.sales_company_id
+        <where>
+            <if test="machineBarcode != null and machineBarcode != ''">
+                t.machine_barcode like CONCAT('%',#{machineBarcode},'%')
+            </if>
+            <if test="machineIsPrint != null and machineIsPrint != ''">
+                AND t.machine_is_print = #{machineIsPrint}
+            </if>
+            <if test="machineProcessState != null and machineProcessState != ''">
+                AND t.machine_process_state = #{machineProcessState}
+            </if>
+        </where>
+        order by machine_create_time desc
+    </select>
+
+    <select id="machineNumberWebApp" parameterType="PtsMachine" resultType="PtsMachine">
+        SELECT
+	      COUNT(t.machine_id)
+        FROM
+            tb_rst_pts_machine t
+        WHERE
+            to_days(t.machine_sales_date) = to_days(now())
+        AND t.machine_produce_id = #{machineProduceId}
+        AND t.machine_sales_state = 1
+    </select>
     
     <select id="listLatestMachine" parameterType="Integer" resultType="PtsMachine">
         select

+ 39 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/pts/mapper/produceMapper.xml

@@ -32,7 +32,7 @@
         <result column="produce_create_time" property="produceCreateTime" />
         <result column="produce_update_time" property="produceUpdateTime" />
         <collection property="process" column="{produceId = produce_id}" javaType="ArrayList"
-                    ofType="com.iamberry.rst.core.pts.ProduceProcess" select="getProduceProcessList"/>
+                    ofType="com.iamberry.rst.core.pts.ProduceProcess" select="getAllProduceProcessList"/>
     </resultMap>
     <resultMap id="ProduceProcessMap" type="com.iamberry.rst.core.pts.ProduceProcess">
         <id column="process_id" property="processId"/>
@@ -48,7 +48,7 @@
         <result column="process_create_time" property="processCreateTime"/>
         <result column="process_update_time" property="processUpdateTime"/>
         <collection property="nodes" column="process_id" javaType="ArrayList"
-                    ofType="com.iamberry.rst.core.pts.ProcessNode" select="getProcessNodeList"/>
+                    ofType="com.iamberry.rst.core.pts.ProcessNode" select="getAllProcessNodeList"/>
     </resultMap>
     <resultMap id="ProcessNodeMap" type="com.iamberry.rst.core.pts.ProcessNode">
         <id column="node_id" property="nodeId"/>
@@ -73,7 +73,7 @@
         tb_rst_pts_produce tp
         WHERE  tp.produce_status = 1
     </select>
-    <select id="getProduceProcessList" parameterType="java.util.HashMap" resultMap="ProduceProcessMap">
+    <select id="getAllProduceProcessList" parameterType="java.util.HashMap" resultMap="ProduceProcessMap">
         SELECT
         ts.process_id,
         ts.produce_id,
@@ -93,7 +93,7 @@
         AND ts.process_status = 1
         ORDER BY ts.process_sort
     </select>
-    <select id="getProcessNodeList" parameterType="java.lang.Integer" resultMap="ProcessNodeMap">
+    <select id="getAllProcessNodeList" parameterType="java.lang.Integer" resultMap="ProcessNodeMap">
         SELECT
         tn.node_id,
         tn.produce_id,
@@ -439,4 +439,39 @@
         FROM
         tb_rst_pts_produce LIMIT 1
     </select>
+
+    <resultMap id="ProduceProcessOneMap" type="com.iamberry.rst.core.pts.ProduceProcess">
+        <id column="process_id" property="processId"/>
+        <result column="produce_id" property="produceId"/>
+        <result column="process_no" property="processNo"/>
+        <result column="process_name" property="processName"/>
+        <result column="employee_id" property="employeeId"/>
+        <result column="drive_id" property="driveId"/>
+        <result column="process_type" property="processType"/>
+        <result column="process_sort" property="processSort"/>
+        <result column="device_name" property="deviceName"/>
+        <result column="employee_name" property="employeeName"/>
+    </resultMap>
+    <select id="getProduceProcessAndNode" parameterType="ProduceProcess" resultMap="ProduceProcessOneMap">
+       SELECT
+            pp.process_id,
+            pp.produce_id,
+            pp.process_no,
+            pp.process_name,
+            pp.employee_id,
+            pp.drive_id,
+            pp.process_sort,
+            pp.process_type,
+            trpd.device_name,
+            trpe.employee_name
+        FROM
+            tb_rst_pts_produce_process pp
+        LEFT JOIN tb_rst_pts_device trpd ON pp.drive_id = trpd.device_id
+        LEFT JOIN tb_rst_pts_employee trpe ON pp.employee_id = trpe.employee_id
+        WHERE
+            pp.produce_id = #{0}
+        AND pp.process_no = #{1}
+    </select>
+
+
 </mapper>

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

@@ -172,4 +172,16 @@
         WHERE
          employee_no = #{employeeNo}
     </select>
+
+
+    <select id="getPtsEmployeeWebApp" parameterType="PtsEmployee" resultType="PtsEmployee">
+        SELECT
+            employee_id AS employeeId,
+            employee_line AS employeeLine
+        FROM
+            tb_rst_pts_employee
+        WHERE
+            employee_id = #{employeeId}
+    </select>
+
 </mapper>

+ 78 - 8
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/AdminMachineController.java

@@ -23,10 +23,7 @@ import org.springframework.web.servlet.ModelAndView;
 import javax.servlet.http.HttpServletRequest;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by LJK on 2017/8/29.
@@ -725,12 +722,12 @@ public class AdminMachineController {
         machine.setMachineBarcode(ptsMachine.getMachineBarcode());
 
         //判断机器是否已经出过库了
-        List<PtsMachine> listPtsMachine = machineService.ListPtsMachine(machine);
+        List<PtsMachine> listPtsMachine = machineService.listMachineWebApp(machine);
         if(listPtsMachine != null && listPtsMachine.size() > 0){
             PtsMachine ma = listPtsMachine.get(0);
             if(ma.getMachineSalesState() == 1){
                 ResponseJson rj = new ResponseJson(501, "ERROR", 501);
-                rj.setResultMsg("该机器已出库了");
+                rj.setResultMsg("该机器已出库了");
                 return rj;
             }
         }else{
@@ -741,14 +738,87 @@ public class AdminMachineController {
         machine.setMachineSalesDate(ptsMachine.getMachineSalesDate());
         machine.setMachineSalesCompanyId(ptsMachine.getMachineSalesCompanyId());
         machine.setMachineSalesState(1); //设置状态为已售出
-        int flag = machineService.updateMachine(machine);
+        int flag = machineService.updateMachineSalesInfo(machine);
         if(flag < 1){
             ResponseJson rj = new ResponseJson(500, "ERROR", 500);
             rj.setResultMsg("录入出库信息失败");
             return rj;
         }
         ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
-        rj.setResultMsg("录入出库信息失败");
+        rj.setResultMsg("录入出库信息成功");
+        return rj;
+    }
+
+    /**
+     * 出库列表
+     */
+    @ResponseBody
+    @RequiresPermissions("machine:delivery:machine")
+    @RequestMapping("/to_list_delivery")
+    public ResponseJson listDeliveryPtsMachine(HttpServletRequest request, PtsMachine ptsMachine) {
+        List<PtsMachine> listPtsMachine = machineService.listMachineWebApp(ptsMachine);
+
+        if(listPtsMachine == null || listPtsMachine.size() <1){
+            ResponseJson rj = new ResponseJson(500, "ERROR", 500);
+            rj.setResultMsg("未查询到机器信息");
+            return rj;
+        }
+        ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
+        rj.addResponseKeyValue("listPtsMachine",listPtsMachine);
+        rj.setResultMsg("");
+        return rj;
+    }
+
+    /**
+     * 今日出库台数
+     */
+    @ResponseBody
+    @RequiresPermissions("machine:delivery:machine")
+    @RequestMapping("/delivery_desc")
+    public ResponseJson deliveryDesc(HttpServletRequest request, PtsMachine ptsMachine) {
+        List<Map> list = new ArrayList<Map>();
+
+        //获取产品集合
+        List<Produce> produceList = produceService.getProduceList();
+        for(Produce produce : produceList){
+            Map<String,Integer> map  = new HashMap<String,Integer>();
+            ptsMachine.setMachineProduceId(produce.getProduceId());
+            Integer machineNumber = machineService.machineNumberWebApp(ptsMachine);
+            map.put(produce.getProduceName(),machineNumber);
+            list.add(map);
+        }
+
+        ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
+        rj.addResponseKeyValue("machineNumber",list);
+        rj.setResultMsg("");
+        return rj;
+    }
+
+    /**
+     * 取消出库
+     */
+    @ResponseBody
+    @RequiresPermissions("machine:delivery:machine")
+    @RequestMapping("/cancel_warehouse")
+    public ResponseJson cancelWarehouse(HttpServletRequest request, PtsMachine ptsMachine) {
+        if (ptsMachine == null || ptsMachine.getMachineBarcode() == null) {
+            ResponseJson rj = new ResponseJson(500, "ERROR", 500);
+            rj.setResultMsg("取消出库操作失败");
+            return rj;
+        }
+        PtsMachine machine = new PtsMachine();
+        machine.setMachineBarcode(ptsMachine.getMachineBarcode());
+        machine.setMachineSalesDate(null);
+        machine.setMachineSalesCompanyId(null);
+        machine.setMachineSalesState(2); //设置状态为未售出
+        int flag = machineService.updateMachineSalesInfo(machine);
+        if(flag < 1){
+            ResponseJson rj = new ResponseJson(500, "ERROR", 500);
+            rj.setResultMsg("取消出库操作失败");
+            return rj;
+        }
+        ResponseJson rj = new ResponseJson(200, "SUCCESS", 200);
+        rj.setResultMsg("取消出库操作成功");
         return rj;
     }
 

+ 123 - 103
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -11,17 +11,13 @@ import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by LJK on 2017/8/29.
@@ -49,10 +45,10 @@ public class MachineController {
 
     @ResponseBody
     @RequestMapping("/uploadProcessOptions")
-    public ResponseJson uploadProcessOptions(HttpServletRequest request){
+    public ResponseJson uploadProcessOptions(HttpServletRequest request) {
         ResponseJson rj = new ResponseJson();
         String nodeList = request.getParameter("nodeList"); //获取员工id
-        if(nodeList == null || nodeList.equals("")){
+        if (nodeList == null || nodeList.equals("")) {
             rj.setResultCode(500);
             rj.setResultMsg("200");
             rj.setResultMsg("ERROR");
@@ -72,7 +68,7 @@ public class MachineController {
         machine.setMachineNfcId(nfcId);
         machine.setMachineCreateTime(ProcessDate);
         Integer ishave = machineService.getMachineIsHave(machine);
-        if(ishave > 0){
+        if (ishave > 0) {
             rj.setResultCode(500);
             rj.setResultMsg("500");
             rj.setResultMsg("此卡片内容已生成二维码");
@@ -83,20 +79,21 @@ public class MachineController {
         /*根据员工id,获取拉线,再将拉线存入机器表 */
         PtsEmployee employee = new PtsEmployee();
         employee.setEmployeeId(employeeId);
-        employee = ptsEmployeeService.getPtsEmployee(employee);
+        employee = ptsEmployeeService.getPtsEmployeeWebApp(employee);
         String employeeLine = employee.getEmployeeLine();
         /*获取当前产品使用的批次 */
-        PtsBatch ptsBatch  =  ptsBatchService.getUseBatch(produce.getProduceId());
-        if(ptsBatch == null){
+        PtsBatch ptsBatch = ptsBatchService.getUseBatch(produce.getProduceId());
+        if (ptsBatch == null) {
             rj.setResultCode(500);
             rj.setResultMsg("500");
-            rj.setResultMsg("系统中没有该产品正在使用的批次");
+            rj.setResultMsg("系统中没有该产品正在使用的批次,请到管理平台完善");
             return rj;
         }
 
         //生成条形码,二维码
         String berQrcode = generationBarCode(produce);
-        String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix+berQrcode);
+        String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix + berQrcode);
+
         QRCJson qrc = WeixinUtil.createQrcode(json);
         PtsMachine ptsMachine = new PtsMachine();
         if (!(qrc == null || qrc.getUrl() == null || qrc.getUrl().isEmpty())) {
@@ -123,118 +120,143 @@ public class MachineController {
         }
         boolean isAbnormality = true;//状态是否异常
 
-        PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
-        for(int i = 0;i< nodes.size();i++){
+        List<PtsMachineLogs>  ptsMachineLogsList = new ArrayList<PtsMachineLogs>();
+        for (int i = 0; i < nodes.size(); i++) {
+            PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
+
             JSONObject jsonObject = nodes.getJSONObject(i);
             String processNo = jsonObject.getString("processId"); //工序编号
             String nodeNo = jsonObject.getString("nodeId"); //工序选项编号
             String logsProcessTime = jsonObject.getString("logsProcessTime"); //工序执行时间 (时间戳)
             Date logsProcessDate = timeConversions(logsProcessTime);
-            /*Date logsProcessDate = new Date(logsProcessTime);*/
-            ProduceProcess produceProcess = produceService.getProduceProcess(produce.getProduceId(),processNo);
-            ProcessNode processNode = produceService.getprocessNode(produceProcess.getProcessId(),nodeNo);
-            PtsDevice ptsDevice = deviceService.getDevice(produceProcess.getDriveId());
-            PtsEmployee ptsEmployee =ptsEmployeeService.getPtsEmployeeById(produceProcess.getEmployeeId());
+
+            ProduceProcess produceProcess = produceService.getProduceProcessAndNode(produce.getProduceId(), processNo);
+            ProcessNode processNode = produceService.getprocessNode(produceProcess.getProcessId(), nodeNo);
+            String deviceName = produceProcess.getDeviceName();
+            String employeeName = produceProcess.getEmployeeName();
+
+            if (deviceName == null) {
+                String processName = produceProcess.getProcessName();
+                rj.setResultCode(500);
+                rj.setResultMsg("500");
+                rj.setResultMsg("\"" + processName + "\"工序的打卡设备未完善,请到管理平台完善");
+                return rj;
+            }
+            if (employeeName == null) {
+                String processName = produceProcess.getProcessName();
+                rj.setResultCode(500);
+                rj.setResultMsg("500");
+                rj.setResultMsg("\"" + processName + "\"工序的员工信息未完善,请到管理平台完善");
+                return rj;
+            }
+
             ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
             ptsMachineLogs.setEmployeeId(produceProcess.getEmployeeId());
             ptsMachineLogs.setProduceId(produce.getProduceId());
             ptsMachineLogs.setProcessId(produceProcess.getProcessId());
             ptsMachineLogs.setMachineId(ptsMachine.getMachineId());
-            ptsMachineLogs.setEmployeeName(ptsEmployee.getEmployeeName());
+            ptsMachineLogs.setEmployeeName(employeeName);
             ptsMachineLogs.setProduceName(produce.getProduceName());
             ptsMachineLogs.setProcessName(produceProcess.getProcessName());
-            ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
+            ptsMachineLogs.setDeviceName(deviceName);
             ptsMachineLogs.setProcessNodeId(processNode.getNodeId());
             ptsMachineLogs.setProcessNodeName(processNode.getNodeDes());
-            if(i == 0){//如果当前循环的是第一条数据则排序必须是1,否则为异常
-                if(produceProcess.getProcessSort() == 1){
-                    if(processNode.getNodeStatus() == 0){//工序选项状态为异常则机器表状态也是异常
+            if (i == 0) {//如果当前循环的是第一条数据则排序必须是1,否则为异常
+                if (produceProcess.getProcessSort() == 1) {
+                    if (processNode.getNodeStatus() == 0) {//工序选项状态为异常则机器表状态也是异常
                         isAbnormality = false;
                     }
                     ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
-                }else{
+                } else {
                     ptsMachineLogs.setLogsProcessStatus(0);
                     isAbnormality = false;
                 }
-            }else{//默认为正常
+            } else {//默认为正常
                 ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
             }
-            ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"检查不通过": null);
+            ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0 ? "检查不通过" : null);
             ptsMachineLogs.setLogsProcessTime(logsProcessDate);
             ptsMachineLogs.setLogsCreateTime(new Date());
+
             //根据上一条工序选项信息判断当前工序是否正常,如果当前为修理工序则忽略,如果上一条为修理工序则查询上上一条
-            if(i > 0){
-                    int num = 0;
-                    ProduceProcess produceProcess2 = null;//当前工序的上一条非修理工序
-                    JSONObject jsonObject2;//上一级工序信息
-                    String processNo2 = null;//上一级工序编号
-                    //先判断当前的上一次是否是修理工序,如果不是则不用执行下面的循环,否则需要循环判断
-                    jsonObject2 = nodes.getJSONObject(i-1);
-                    if(jsonObject2 != null){
-                        processNo2 = jsonObject2.getString("processId");
-                        produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2);
-                        //判断当前工序是否是修理工序,如果是,则修改上一条为次品
-                        if(produceProcess.getProcessType() == 2){
-                            ptsMachineLogs.setLogsErrorType(2);//异常类型 1:流程异常 2:次品异常
-                            ptsMachineLogs.setLogsProcessPrompt("次品异常");
-                            machineLogsService.updateMachineLogs(ptsMachineLogs);
-                            isAbnormality = false;
-                            ptsMachineLogs.setLogsId(null);
-                            ptsMachineLogs.setLogsErrorType(null);
-                            ptsMachineLogs.setLogsProcessPrompt(null);
-                        }else{
-                            //判断是否是修理工序 1:生产工序 2:修理工序
-                            if(produceProcess2.getProcessType() == 1){
-                                if(produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1){
-                                    ptsMachineLogs.setLogsProcessStatus(0);
-                                    ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
-                                    ptsMachineLogs.setLogsProcessPrompt("流程异常");
-                                    isAbnormality = false;
+            if (i > 0) {
+                int num = 0;
+                ProduceProcess produceProcess2 = null;//当前工序的上一条非修理工序
+                JSONObject jsonObject2;//上一级工序信息
+                String processNo2 = null;//上一级工序编号
+                //先判断当前的上一次是否是修理工序,如果不是则不用执行下面的循环,否则需要循环判断
+                jsonObject2 = nodes.getJSONObject(i - 1);
+                if (jsonObject2 != null) {
+                    processNo2 = jsonObject2.getString("processId");
+                    produceProcess2 = produceService.getProduceProcess(produce.getProduceId(), processNo2);
+                    //判断当前工序是否是修理工序,如果是,则修改上一条为次品
+                    if (produceProcess.getProcessType() == 2) {
+                        ptsMachineLogsList.get(ptsMachineLogsList.size()-1).setLogsErrorType(2); //异常类型 1:流程异常 2:次品异常
+                        ptsMachineLogsList.get(ptsMachineLogsList.size()-1).setLogsProcessPrompt("次品异常");
+//                        ptsMachineLogs.setLogsErrorType(2);
+//                        ptsMachineLogs.setLogsProcessPrompt("次品异常");
+//                        machineLogsService.updateMachineLogs(ptsMachineLogs);
+                        isAbnormality = false;
+                        ptsMachineLogs.setLogsId(null);
+                        ptsMachineLogs.setLogsErrorType(null);
+                        ptsMachineLogs.setLogsProcessPrompt(null);
+                    } else {
+                        //判断是否是修理工序 1:生产工序 2:修理工序
+                        if (produceProcess2.getProcessType() == 1) {
+                            if (produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1) {
+                                ptsMachineLogs.setLogsProcessStatus(0);
+                                ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                ptsMachineLogs.setLogsProcessPrompt("流程异常");
+                                isAbnormality = false;
+                            }
+                        } else {
+                            for (int j = i - 1; j <= i - 1; j--) {
+                                if (num == i) {
+                                    break;//只能循环 i 次,超出则跳出当前循环
                                 }
-                            }else{
-                                for(int j = i-1;j<= i-1;j--){
-                                    if(num == i){
-                                        break;//只能循环 i 次,超出则跳出当前循环
-                                    }
-                                    jsonObject2 = nodes.getJSONObject(j);
-                                    if(jsonObject2 != null){
-                                        processNo2 = jsonObject2.getString("processId");
-                                        produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2);
-                                        if(produceProcess2.getProcessType() == 1){//判断是否是修理工序 1:生产工序 2:修理工序
-                                            if(produceProcess.getProcessSort() > produceProcess2.getProcessSort()){
-                                                ptsMachineLogs.setLogsProcessStatus(0);
-                                                ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
-                                                ptsMachineLogs.setLogsProcessPrompt("流程异常");
-                                                isAbnormality = false;
-                                            }
-                                            break;
+                                jsonObject2 = nodes.getJSONObject(j);
+                                if (jsonObject2 != null) {
+                                    processNo2 = jsonObject2.getString("processId");
+                                    produceProcess2 = produceService.getProduceProcess(produce.getProduceId(), processNo2);
+                                    if (produceProcess2.getProcessType() == 1) {//判断是否是修理工序 1:生产工序 2:修理工序
+                                        if (produceProcess.getProcessSort() > produceProcess2.getProcessSort()) {
+                                            ptsMachineLogs.setLogsProcessStatus(0);
+                                            ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                            ptsMachineLogs.setLogsProcessPrompt("流程异常");
+                                            isAbnormality = false;
                                         }
+                                        break;
                                     }
-                                    num++;
                                 }
+                                num++;
                             }
                         }
                     }
+                }
             }
             //执行添加日志操作
-            machineLogsService.addMachineLogs(ptsMachineLogs);
+            ptsMachineLogsList.add(ptsMachineLogs);
             ptsMachineLogs.setLogsErrorType(null);//还原为默认值
         }
+        machineLogsService.addMachineLogs(ptsMachineLogsList);
+
         //修改机器信息
-            PtsMachine ptsMachine2 = new PtsMachine();
-            ptsMachine2.setMachineId(ptsMachine.getMachineId());
-            if(!isAbnormality){
-                ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
-            }
-            ptsMachine2.setMachineUpdateTime(new Date());
-            ptsMachine2.setMachineProduceId(produce.getProduceId());
-            machineService.updateMachine(ptsMachine2);
+        PtsMachine ptsMachine2 = new PtsMachine();
+        ptsMachine2.setMachineId(ptsMachine.getMachineId());
+        if (!isAbnormality) {
+            ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
+        }
+        ptsMachine2.setMachineUpdateTime(new Date());
+        ptsMachine2.setMachineProduceId(produce.getProduceId());
+        machineService.updateMachine(ptsMachine2);
         //截取条形码尾号(4位)
-        rj.addResponseKeyValue("barcodeTail",berQrcode.substring(berQrcode.length()-4, berQrcode.length()));
+        rj.addResponseKeyValue("barcodeTail", berQrcode.substring(berQrcode.length() - 4, berQrcode.length()));
+
         return rj;
     }
-    private static Date timeConversions(String time){
-        if(time == null || time.equals("")){
+
+    private static Date timeConversions(String time) {
+        if (time == null || time.equals("")) {
             return new Date();
         }
         //08311112
@@ -244,19 +266,16 @@ public class MachineController {
         String sky = null;//天
         String when = null;//时
         String subdivision = null;//分
-        months = time.substring(0,2);
-        sky = time.substring(2,4);
-        when = time.substring(4,6);
-        subdivision = time.substring(6,8);
+        months = time.substring(0, 2);
+        sky = time.substring(2, 4);
+        when = time.substring(4, 6);
+        subdivision = time.substring(6, 8);
         time = year + "-" + months + "-" + sky + " " + when + ":" + subdivision;
         Date dates = new Date();
-        try
-        {
+        try {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
             dates = sdf.parse(time);
-        }
-        catch (ParseException e)
-        {
+        } catch (ParseException e) {
             System.out.println(e.getMessage());
         }
 
@@ -267,8 +286,9 @@ public class MachineController {
     private String productModel = "1X";//产品型号
     private String productFeatures = "A";//产品特性
     private String softwareVersion = "30";//软件版本
+
     //生成条形码
-    public String generationBarCode(Produce produce){
+    public String generationBarCode(Produce produce) {
 
         java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM");
         java.util.Date currTime = new java.util.Date();
@@ -278,34 +298,34 @@ public class MachineController {
         int month = cal.get(Calendar.MONTH) + 1;
         //获取当前月机器总数
         Integer number = machineService.selectMonthCount(curTime);
-        number = number+1;
+        number = number + 1;
         String num = null;
-        switch(String.valueOf(number).length()){
+        switch (String.valueOf(number).length()) {
             case 0:
                 num = "0001";
                 break;
             case 1:
-                num = "000"+String.valueOf(number);
+                num = "000" + String.valueOf(number);
                 break;
             case 2:
-                num = "00"+String.valueOf(number);
+                num = "00" + String.valueOf(number);
                 break;
             case 3:
-                num = "0"+String.valueOf(number);
+                num = "0" + String.valueOf(number);
                 break;
             case 4:
                 num = String.valueOf(number);
                 break;
         }
         String months = String.valueOf(month);
-        if(month < 10){
-            months = "0"+months;
+        if (month < 10) {
+            months = "0" + months;
         }
 
         productModel = produce.getProduceModel();
         productFeatures = produce.getProduceFeature();
         //拼接
-        String barcode = productModel+productFeatures+softwareVersion+String.valueOf(year).substring(2,4)+months+num;
+        String barcode = productModel + productFeatures + softwareVersion + String.valueOf(year).substring(2, 4) + months + num;
         return barcode;
     }
 }

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_List.ftl

@@ -29,7 +29,7 @@
 					<#--<button type="button" class="my-btn-search" onclick="setting();" style="cursor:pointer; margin-right: 50px;">设置</button>-->
                     <#-- <button type="button" class="my-btn-search" onclick="batch_add_machine('批量添加机器','${path}/admin/machine/_to_add_batch','','550');" style="cursor:pointer; margin-right: 50px;">添加机器</button>
                      &nbsp; &nbsp;-->
-                     <button type="button" class="my-btn-search" onclick="add_renovationmachine('批量添加机器','${path}/admin/machine/_to_add_renovation','560','390');" style="cursor:pointer; margin-right: 50px;">添加翻新机</button>
+                     <button type="button" class="my-btn-search" onclick="add_renovationmachine('批量添加机器','${path}/admin/machine/_to_add_renovation','570','450');" style="cursor:pointer; margin-right: 50px;">添加翻新机</button>
 
 					<input class="my-input" type="text" name="machineBarcode" value="${machineBarcode!''}" placeholder="请输入机器编号"/>
 					<select class="my-select" name="machineIsPrint">

BIN
watero-rst-web/src/main/webapp/common/images/index/admin-login.png


BIN
watero-rst-web/src/main/webapp/common/images/login/admin-login-bg.png


BIN
watero-rst-web/src/main/webapp/common/images/login/admin-loginform-bg.png