Explorar o código

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

wangxiaoming %!s(int64=7) %!d(string=hai) anos
pai
achega
5a7bd81c1e

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

@@ -10,4 +10,6 @@ public interface MachineLogsService {
     //添加生产日志
     Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
 
+    //修改生产日志
+    Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
 }

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

@@ -23,4 +23,9 @@ public class MachineLogsServiceImpl implements MachineLogsService {
     public Integer addMachineLogs(PtsMachineLogs ptsMachineLogs) {
         return machineLogsMapper.addMachineLogs(ptsMachineLogs);
     }
+
+    @Override
+    public Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs) {
+        return machineLogsMapper.updateMachineLogs(ptsMachineLogs);
+    }
 }

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

@@ -9,4 +9,7 @@ import com.iamberry.rst.core.pts.PtsMachineLogs;
 public interface MachineLogsMapper {
         //添加生产日志
         Integer addMachineLogs(PtsMachineLogs ptsMachineLogs);
+
+        //修改生产日志
+        Integer updateMachineLogs(PtsMachineLogs ptsMachineLogs);
 }

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

@@ -1,7 +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.MachineLogsMapper">
-    <insert id="addMachineLogs" parameterType="PtsMachineLogs" useGeneratedKeys="true" keyProperty="machineId">
+    <insert id="addMachineLogs" parameterType="PtsMachineLogs" useGeneratedKeys="true" keyProperty="logsId">
         INSERT INTO tb_rst_pts_machine_logs
         (machine_id,employee_id,produce_id,
         process_id,device_id,employee_name,
@@ -15,5 +15,15 @@
         #{processName},#{deviceName},#{logsProcessStatus},#{logsErrorType}
         ,#{logsProcessPrompt},#{logsProcessTime},#{logsCreateTime})
     </insert>
-
+    <update id="updateMachineLogs" >
+        UPDATE tb_rst_pts_machine_logs SET
+        <if test="logsErrorType != null and logsErrorType != ''" >
+            logs_error_type = #{logsErrorType}
+        </if>
+        <where>
+            <if test="logsId != null and logsId != ''">
+                logs_id = #{logsId}
+            </if>
+        </where>
+    </update>
 </mapper>

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

@@ -40,10 +40,7 @@
             machine_hardware_version = #{machineHardwareVersion},
         </if>
         <if test="machineUpdateTime != null and machineUpdateTime != ''" >
-            machine_update_time = #{machineUpdateTime},
-        </if>
-        <if test="logsErrorType != null and logsErrorType != ''" >
-            logs_error_type = #{logsErrorType}
+            machine_update_time = #{machineUpdateTime}
         </if>
         <where>
             <if test="machineId != null">

+ 45 - 38
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -69,7 +69,7 @@ public class MachineController {
         }
         boolean isAbnormality = true;//状态是否异常
         JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
-        Iterator<Object> it = nodes.iterator();
+        PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
         for(int i = 0;i< nodes.size();i++){
             JSONObject jsonObject = nodes.getJSONObject(i);
             String processNo = jsonObject.getString("processId"); //工序编号
@@ -81,7 +81,6 @@ public class MachineController {
             ProcessNode processNode = produceService.getprocessNode(produceProcess.getProcessId(),nodeNo.charAt(0));
             PtsDevice ptsDevice = deviceService.getDevice(produceProcess.getDriveId());
             PtsEmployee ptsEmployee =ptsEmployeeService.getPtsEmployeeById(employeeId);
-            PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
             ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
             ptsMachineLogs.setEmployeeId(employeeId);
             ptsMachineLogs.setProduceId(produce.getProduceId());
@@ -102,59 +101,67 @@ public class MachineController {
                     isAbnormality = false;
                 }
             }else{//默认为正常
-                ptsMachineLogs.setLogsProcessStatus(1);
+                ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
             }
             ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"异常操作": null);
             ptsMachineLogs.setLogsProcessTime(logsProcessDate);
             ptsMachineLogs.setLogsCreateTime(new Date());
             //根据上一条工序选项信息判断当前工序是否正常,如果当前为修理工序则忽略,如果上一条为修理工序则查询上上一条
             if(i > 0){
-                //查询出当前产品正常生产工序
-                //List<ProduceProcess> ProcessList = produceService.listProduceProcess(produce.getProduceId());
-                int num = 0;
-                ProduceProcess produceProcess2 = null;//当前工序的上一条非修理工序
-                JSONObject jsonObject2;//上一级工序信息
-                String processNo2 = null;//上一级工序编号
-                //先判断当前的上一次是否是修理工序,如果不是则不用执行下面的循环,否则需要循环判断
-                jsonObject2 = nodes.getJSONObject(i-1);
-                if(jsonObject2 != null){
-                    processNo2 = jsonObject.getString("processId");
-                    produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2.charAt(0));
-                    if(produceProcess2.getProcessType() == 1){//判断是否是修理工序 1:生产工序 2:修理工序
-                        if(produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1){
-                            ptsMachineLogs.setLogsProcessStatus(0);
-                            ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                    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.charAt(0));
+                        //判断当前工序是否是修理工序,如果是,则修改上一条为次品
+                        if(produceProcess.getProcessType() == 2){
+                            ptsMachineLogs.setLogsErrorType(2);//异常类型 1:流程异常 2:次品异常
+                            machineLogsService.updateMachineLogs(ptsMachineLogs);
                             isAbnormality = false;
-                        }
-                    }else{
-                        for(int j = i-1;j<= i-1;j--){
-                            if(num == i){
-                                break;//只能循环 i 次,超出则跳出当前循环
-                            }
-                            jsonObject2 = nodes.getJSONObject(j);
-                            if(jsonObject2 != null){
-                                processNo2 = jsonObject.getString("processId");
-                                produceProcess2 = produceService.getProduceProcess(produce.getProduceId(),processNo2.charAt(0));
-                                if(produceProcess2.getProcessType() == 1){//判断是否是修理工序 1:生产工序 2:修理工序
-                                    break;
-                                }else{
-                                    if(produceProcess.getProcessSort() > produceProcess2.getProcessSort()){
-                                        ptsMachineLogs.setLogsProcessStatus(0);
-                                        ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
-                                        isAbnormality = false;
+                            ptsMachineLogs.setLogsId(null);
+                            ptsMachineLogs.setLogsErrorType(null);
+                        }else{
+                            //判断是否是修理工序 1:生产工序 2:修理工序
+                            if(produceProcess2.getProcessType() == 1){
+                                if(produceProcess.getProcessSort() - produceProcess2.getProcessSort() != 1){
+                                    ptsMachineLogs.setLogsProcessStatus(0);
+                                    ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                    isAbnormality = false;
+                                }
+                            }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.charAt(0));
+                                        if(produceProcess2.getProcessType() == 1){//判断是否是修理工序 1:生产工序 2:修理工序
+                                            if(produceProcess.getProcessSort() > produceProcess2.getProcessSort()){
+                                                ptsMachineLogs.setLogsProcessStatus(0);
+                                                ptsMachineLogs.setLogsErrorType(1);//异常类型 1:流程异常 2:次品异常
+                                                isAbnormality = false;
+                                            }
+                                            break;
+                                        }
+                                    }
+                                    num++;
                                 }
                             }
-                            num++;
                         }
                     }
-                }
             }
             //执行添加日志操作
             machineLogsService.addMachineLogs(ptsMachineLogs);
+            ptsMachineLogs.setLogsErrorType(null);//还原为默认值
         }
         //修改机器信息
-        if(isAbnormality){
+        if(!isAbnormality){
             PtsMachine ptsMachine2 = new PtsMachine();
             ptsMachine2.setMachineId(ptsMachine.getMachineId());
             ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常