Bläddra i källkod

上传工序选项接口代码

liujiankang 7 år sedan
förälder
incheckning
c167006968

+ 0 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/tools/WeixinUtil.java

@@ -1,7 +1,6 @@
 package com.iamberry.rst.core.tools;
 
 import com.iamberry.cache.LocalCache;
-import com.iamberry.wechat.core.entity.wx.*;
 import com.iamberry.wechat.tools.MyX509TrustManager;
 import com.iamberry.wechat.tools.NameUtils;
 import net.sf.json.JSONObject;

+ 4 - 2
watero-rst-interface/src/main/java/com/iamberry/rst/faces/pts/DeviceService.java

@@ -1,10 +1,12 @@
 package com.iamberry.rst.faces.pts;
 
+import com.iamberry.rst.core.pts.PtsDevice;
+
 /**
  * 设备管理service
  * Created by LJK on 2017/8/29.
  */
 public interface DeviceService {
-
-
+    //获取单个设备信息
+    PtsDevice getDevice(Integer deviceId);
 }

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

@@ -1,6 +1,8 @@
 package com.iamberry.rst.faces.pts;
 
+import com.iamberry.rst.core.pts.ProcessNode;
 import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
 
 import java.util.List;
 
@@ -16,4 +18,13 @@ public interface ProduceService {
     //获取生产产品,产品工序,工序节点
     List<Produce> getAllProduceList(Integer employeeId);
 
+    //获取单个产品信息
+    Produce getProduce(Integer produceId);
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcess(Integer processId);
+
+    //获取单个工序选项信息
+    ProcessNode getprocessNode(Integer nodeId);
+
 }

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

@@ -11,4 +11,11 @@ public interface PtsEmployeeService {
      * 获取员工信息
      */
     PtsEmployee getPtsEmployee(PtsEmployee ptsEmployee);
+
+    /**
+     * 根据id查询单个员工信息
+     * @param employeeId
+     * @return
+     */
+    PtsEmployee getPtsEmployeeById(Integer employeeId);
 }

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

@@ -1,5 +1,6 @@
 package com.iamberry.rst.service.pts;
 
+import com.iamberry.rst.core.pts.PtsDevice;
 import com.iamberry.rst.faces.pts.DeviceService;
 import com.iamberry.rst.faces.pts.MachineService;
 import com.iamberry.rst.service.pts.mapper.DeviceMapper;
@@ -18,4 +19,8 @@ public class DeviceServiceImpl implements DeviceService {
     @Autowired
     private DeviceMapper deviceMapper;
 
+    @Override
+    public PtsDevice getDevice(Integer deviceId) {
+        return deviceMapper.getDevice(deviceId);
+    }
 }

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

@@ -1,6 +1,8 @@
 package com.iamberry.rst.service.pts;
 
+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.pts.mapper.ProduceMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,4 +31,19 @@ public class ProduceServiceImpl implements ProduceService {
     public List<Produce> getAllProduceList(Integer employeeId){
         return produceMapper.getAllProduceList(employeeId);
     }
+
+    @Override
+    public Produce getProduce(Integer produceId) {
+        return produceMapper.getProduce(produceId);
+    }
+
+    @Override
+    public ProduceProcess getProduceProcess(Integer processId) {
+        return produceMapper.getProduceProcess(processId);
+    }
+
+    @Override
+    public ProcessNode getprocessNode(Integer nodeId) {
+        return produceMapper.getprocessNode(nodeId);
+    }
 }

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

@@ -26,4 +26,10 @@ public class PtsEmployeeServiceImpl implements PtsEmployeeService {
         return ptsEmployeeMapper.getPtsEmployee(ptsEmployee);
     }
 
+    @Override
+    public PtsEmployee getPtsEmployeeById(Integer employeeId) {
+        return ptsEmployeeMapper.getPtsEmployeeById(employeeId);
+    }
+
+
 }

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

@@ -1,9 +1,12 @@
 package com.iamberry.rst.service.pts.mapper;
 
+import com.iamberry.rst.core.pts.PtsDevice;
+
 /**
  * 设备管理
  * Created by LJK on 2017/8/29.
  */
 public interface DeviceMapper {
-
+    //获取单个设备信息
+    PtsDevice getDevice(Integer deviceId);
 }

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

@@ -1,6 +1,8 @@
 package com.iamberry.rst.service.pts.mapper;
 
+import com.iamberry.rst.core.pts.ProcessNode;
 import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.core.pts.ProduceProcess;
 
 import java.util.List;
 
@@ -15,4 +17,13 @@ public interface ProduceMapper {
 
     //获取生产产品,产品工序,工序节点
     List<Produce> getAllProduceList(Integer employeeId);
+
+    //获取单个产品信息
+    Produce getProduce(Integer produceId);
+
+    //获取单个工序信息
+    ProduceProcess getProduceProcess(Integer processId);
+
+    //获取单个工序选项信息
+    ProcessNode getprocessNode(Integer nodeId);
 }

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

@@ -14,4 +14,11 @@ public interface PtsEmployeeMapper {
      * @return
      */
     PtsEmployee getPtsEmployee(PtsEmployee ptsEmployee);
+
+    /**
+     * 根据id查询单个员工信息
+     * @param employeeId
+     * @return
+     */
+    PtsEmployee getPtsEmployeeById(Integer employeeId);
 }

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

@@ -1,6 +1,20 @@
 <?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.DeviceMapper">
-
+    <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>
 
 </mapper>

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

@@ -104,6 +104,53 @@
         WHERE  tn.process_id = #{processId}
     </select>
     <!--获取产品工序节点的接口sql-start-->
+    <select id="getProduce" parameterType="Integer" resultType="Produce">
+        SELECT
+        tb_rst_pts_produce.produce_id AS produceId,
+        tb_rst_pts_produce.produce_name AS produceName,
+        tb_rst_pts_produce.produce_status AS  produceStatus,
+        tb_rst_pts_produce.produce_remake AS produceRemake,
+        tb_rst_pts_produce.produce_create_time AS  produceCreateTime,
+        tb_rst_pts_produce.produce_update_time AS produceUpdateTime
+        FROM
+        tb_rst_pts_produce
+        WHERE
+        produce_id = #{produceId}
+    </select>
+
+    <select id="getProduceProcess" parameterType="Integer" resultType="ProduceProcess">
+        SELECT
+        pp.process_id AS processId,
+        pp.produce_id AS produceId,
+        pp.process_no AS processNo,
+        pp.process_name AS  processName,
+        pp.employee_id AS employeeId,
+        pp.drive_id AS  driveId,
+        pp.process_status AS processStatus,
+        pp.process_sort AS processSort,
+        pp.process_remake AS processRemake,
+        pp.process_create_time AS processCreateTime,
+        pp.process_update_time AS processUpdateTime
+        FROM
+        tb_rst_pts_produce_process pp
+        WHERE
+        pp.process_id = #{processId}
+    </select>
 
+    <select id="getprocessNode" parameterType="Integer" resultType="ProcessNode">
+        SELECT
+        node_id AS nodeId,
+        produce_id AS produceId,
+        process_id AS processId,
+        node_no AS  nodeNo,
+        node_status AS nodeStatus,
+        node_desc AS  nodeDesc,
+        node_create_time AS nodeCreateTime,
+        node_update_time AS nodeUpdateTime
+        FROM
+        tb_rst_pts_process_node
+        WHERE
+        node_id = #{nodeId}
+    </select>
 
 </mapper>

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

@@ -18,4 +18,22 @@
         FROM
             tb_rst_pts_employee
     </select>
+    <select id="getPtsEmployeeById" parameterType="Integer" resultType="PtsEmployee">
+        SELECT
+         employee_id AS employeeId,
+         employee_no AS employeeNo,
+         employee_name AS employeeName,
+         employee_tel AS  employeeTel,
+         employee_state AS  employeeState,
+         employee_entry_date AS  employeeEntryDate,
+         employee_departure_date AS employeeDepartureDate ,
+         employee_post AS  employeePost,
+         employee_desc AS  employeeDesc,
+         employee_create_time AS  employeeCreateTime,
+         employee_update_time AS  employeeUpdateTime
+        FROM
+        tb_rst_pts_employee
+        WHERE
+        employee_id = #{employeeId}
+    </select>
 </mapper>

+ 59 - 8
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/MachineController.java

@@ -1,29 +1,47 @@
 package com.iamberry.rst.controllers.pts;
 
 import com.alibaba.dubbo.common.json.JSON;
-import com.iamberry.rst.core.pts.PtsMachine;
+import com.iamberry.rst.core.pts.*;
 import com.iamberry.rst.core.tools.QRCJson;
 import com.iamberry.rst.core.tools.WeixinUtil;
+import com.iamberry.rst.faces.pts.MachineService;
+import com.iamberry.rst.faces.pts.ProduceService;
+import com.iamberry.rst.service.pts.mapper.DeviceMapper;
+import com.iamberry.rst.service.pts.mapper.PtsEmployeeMapper;
 import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.ResponseJson;
 import com.iamberry.wechat.tools.ResultInfo;
 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 javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.Map;
 
 /**
- * Created by Administrator on 2017/8/29.
+ * Created by LJK on 2017/8/29.
  */
 @Controller
 @RequestMapping("/mcahine")
 public class MachineController {
+    @Autowired
+    private ProduceService produceService;
+
+    @Autowired
+    private MachineService machineService;
+
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+    @Autowired
+    private PtsEmployeeMapper ptsEmployeeMapper;
+
     @RequestMapping("/uploadProcessOptions")
     public ResponseJson uploadProcessOptions(HttpServletRequest request,@RequestBody JSONObject query){
         ResponseJson rj = new ResponseJson();
@@ -38,8 +56,8 @@ public class MachineController {
         String berQrcode = String.valueOf(employeeId+new Date().getTime());
         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())) {
-            PtsMachine ptsMachine = new PtsMachine();
             ptsMachine.setMachineQrcode(qrc.getUrl());//二维码
             ptsMachine.setMachineBarcode(berQrcode);//条形码
             ptsMachine.setMachineStatus(1);//机器状态
@@ -48,19 +66,52 @@ public class MachineController {
             ptsMachine.setMachineCompoundImg("合成的图片url");
             ptsMachine.setMachineProcessState(1);//生成流程状态1.正常2.异常
             ptsMachine.setMachineCreateTime(new Date());//创建时间
-
+            machineService.addMachine(ptsMachine);
         }
         JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
         Iterator<Object> it = nodes.iterator();
-        while (it.hasNext()) {
-            JSONObject jsonObject = (JSONObject) it.next();
+        for(int i = 0;i<= nodes.size();i++){
+            JSONObject jsonObject = nodes.getJSONObject(i);
+            /*JSONObject jsonObject = (JSONObject) it.next();*/
             /*System.out.println(jsonObject.toString());*/
             Integer processId = jsonObject.getInt("processId"); //工序id
             Integer nodeId = jsonObject.getInt("nodeId"); //工序选项id
             Long logsProcessTime = jsonObject.getLong("logsProcessTime"); //工序执行时间 (时间戳)
-
+            Date logsProcessDate = new Date(logsProcessTime);
+            Produce produce = produceService.getProduce(produceId);
+            ProduceProcess produceProcess = produceService.getProduceProcess(processId);
+            ProcessNode processNode = produceService.getprocessNode(nodeId);
+            PtsDevice ptsDevice = deviceMapper.getDevice(produceProcess.getDriveId());
+            PtsEmployee ptsEmployee =ptsEmployeeMapper.getPtsEmployeeById(employeeId);
+            PtsMachineLogs ptsMachineLogs = new PtsMachineLogs();
+            ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
+            ptsMachineLogs.setEmployeeId(employeeId);
+            ptsMachineLogs.setProduceId(produceId);
+            ptsMachineLogs.setProcessId(processId);
+            ptsMachineLogs.setMachineId(ptsMachine.getMachineId());
+            ptsMachineLogs.setEmployeeName(ptsEmployee.getEmployeeName());
+            ptsMachineLogs.setProduceName(produce.getProduceName());
+            ptsMachineLogs.setProcessName(produceProcess.getProcessName());
+            ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
+            ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
+            ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"异常操作": null);
+            ptsMachineLogs.setLogsProcessTime(logsProcessDate);
+            ptsMachineLogs.setLogsCreateTime(new Date());
+            //根据下一条工序选项信息判断当前工序是否正常
+            JSONObject jsonObject2 = nodes.getJSONObject(i+1);
+            if(jsonObject2 != null){
+                    Integer processId2 = jsonObject.getInt("processId");
+                    ProduceProcess produceProcess2 = produceService.getProduceProcess(processId2);
+                    if(produceProcess2.getProcessSort() - produceProcess.getProcessSort() != 1){
+                        PtsMachine ptsMachine2 = new PtsMachine();
+                        ptsMachine2.setMachineId(ptsMachine.getMachineId());
+                        ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
+                        ptsMachine2.setMachineUpdateTime(new Date());
+                    }
+            }
         }
-
+        //截取条形码尾号(4位)
+        rj.addResponseKeyValue("barcodeTail",berQrcode.substring(berQrcode.length()-4, berQrcode.length()));
         return rj;
     }
 }

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

@@ -2,19 +2,19 @@
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
 	<!-- 设置  -->
-	<settings>  
-		<!--set lazy fetching-->  
-        <setting name="lazyLoadingEnabled" value="false" />  
+	<settings>
+		<!--set lazy fetching-->
+		<setting name="lazyLoadingEnabled" value="false" />
 		<!-- log4j -->
-        <setting name="logImpl" value="LOG4J"/>  
+		<setting name="logImpl" value="LOG4J"/>
 		<!-- 开启驼峰命名转换 map_entity to mapEntity -->
-		<setting name="mapUnderscoreToCamelCase" value="true" />  
+		<setting name="mapUnderscoreToCamelCase" value="true" />
 		<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键 -->
-		<setting name="useGeneratedKeys" value="true" />  
+		<setting name="useGeneratedKeys" value="true" />
 		<!-- 开启别列名转换 : select name as title form table -->
-		<setting name="useColumnLabel" value="true" />  
-    </settings>
-    <!-- 别名设置 -->
+		<setting name="useColumnLabel" value="true" />
+	</settings>
+	<!-- 别名设置 -->
 	<typeAliases>
 		<typeAlias type="com.iamberry.rst.core.sys.Admin" alias="Admin"/>
 		<typeAlias type="com.iamberry.rst.core.sys.AdminPocess" alias="AdminPocess"/>