|
@@ -3,11 +3,7 @@ package com.iamberry.rst.controllers.pts;
|
|
import com.iamberry.rst.core.pts.*;
|
|
import com.iamberry.rst.core.pts.*;
|
|
import com.iamberry.rst.core.tools.QRCJson;
|
|
import com.iamberry.rst.core.tools.QRCJson;
|
|
import com.iamberry.rst.core.tools.WeixinUtil;
|
|
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.MachineLogsMapper;
|
|
|
|
-import com.iamberry.rst.service.pts.mapper.PtsEmployeeMapper;
|
|
|
|
|
|
+import com.iamberry.rst.faces.pts.*;
|
|
import com.iamberry.wechat.tools.NameUtils;
|
|
import com.iamberry.wechat.tools.NameUtils;
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
@@ -22,6 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by LJK on 2017/8/29.
|
|
* Created by LJK on 2017/8/29.
|
|
@@ -36,13 +33,13 @@ public class MachineController {
|
|
private MachineService machineService;
|
|
private MachineService machineService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private DeviceMapper deviceMapper;
|
|
|
|
|
|
+ private DeviceService deviceService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private PtsEmployeeMapper ptsEmployeeMapper;
|
|
|
|
|
|
+ private PtsEmployeeService ptsEmployeeService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private MachineLogsMapper machineLogsMapper;
|
|
|
|
|
|
+ private MachineLogsService machineLogsService;
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RequestMapping("/uploadProcessOptions")
|
|
@RequestMapping("/uploadProcessOptions")
|
|
public ResponseJson uploadProcessOptions(HttpServletRequest request,@RequestBody JSONObject query){
|
|
public ResponseJson uploadProcessOptions(HttpServletRequest request,@RequestBody JSONObject query){
|
|
@@ -53,7 +50,7 @@ public class MachineController {
|
|
return rj;
|
|
return rj;
|
|
}
|
|
}
|
|
Integer employeeId = query.getInt("employeeId");//员工id
|
|
Integer employeeId = query.getInt("employeeId");//员工id
|
|
- Integer produceId = query.getInt("produceId");//产品id
|
|
|
|
|
|
+ String produceNo = query.getString("produceId");//产品编号
|
|
//生成条形码,二维码
|
|
//生成条形码,二维码
|
|
String berQrcode = String.valueOf(employeeId+new Date().getTime());
|
|
String berQrcode = String.valueOf(employeeId+new Date().getTime());
|
|
String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix+berQrcode);
|
|
String json = String.format(NameUtils.QR_LIMIT_STR_SCENE, ResultInfo.barCodePrefix+berQrcode);
|
|
@@ -70,50 +67,99 @@ public class MachineController {
|
|
ptsMachine.setMachineCreateTime(new Date());//创建时间
|
|
ptsMachine.setMachineCreateTime(new Date());//创建时间
|
|
machineService.addMachine(ptsMachine);
|
|
machineService.addMachine(ptsMachine);
|
|
}
|
|
}
|
|
|
|
+ boolean isAbnormality = true;//状态是否异常
|
|
JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
|
|
JSONArray nodes = query.getJSONArray("nodes");//选项集合(包含一个或多个工序选项,详情见示例)
|
|
Iterator<Object> it = nodes.iterator();
|
|
Iterator<Object> it = nodes.iterator();
|
|
for(int i = 0;i< nodes.size();i++){
|
|
for(int i = 0;i< nodes.size();i++){
|
|
JSONObject jsonObject = nodes.getJSONObject(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
|
|
|
|
|
|
+ String processNo = jsonObject.getString("processId"); //工序编号
|
|
|
|
+ String nodeNo = jsonObject.getString("nodeId"); //工序选项编号
|
|
Long logsProcessTime = jsonObject.getLong("logsProcessTime"); //工序执行时间 (时间戳)
|
|
Long logsProcessTime = jsonObject.getLong("logsProcessTime"); //工序执行时间 (时间戳)
|
|
Date logsProcessDate = new Date(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);
|
|
|
|
|
|
+ Produce produce = produceService.getProduce(produceNo);//根据产品编号获取产品信息
|
|
|
|
+ ProduceProcess produceProcess = produceService.getProduceProcess(produce.getProduceId(),processNo.charAt(0));
|
|
|
|
+ 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 ptsMachineLogs = new PtsMachineLogs();
|
|
ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
|
|
ptsMachineLogs.setDeviceId(produceProcess.getDriveId());
|
|
ptsMachineLogs.setEmployeeId(employeeId);
|
|
ptsMachineLogs.setEmployeeId(employeeId);
|
|
- ptsMachineLogs.setProduceId(produceId);
|
|
|
|
- ptsMachineLogs.setProcessId(processId);
|
|
|
|
|
|
+ ptsMachineLogs.setProduceId(produce.getProduceId());
|
|
|
|
+ ptsMachineLogs.setProcessId(produceProcess.getProcessId());
|
|
ptsMachineLogs.setMachineId(ptsMachine.getMachineId());
|
|
ptsMachineLogs.setMachineId(ptsMachine.getMachineId());
|
|
ptsMachineLogs.setEmployeeName(ptsEmployee.getEmployeeName());
|
|
ptsMachineLogs.setEmployeeName(ptsEmployee.getEmployeeName());
|
|
ptsMachineLogs.setProduceName(produce.getProduceName());
|
|
ptsMachineLogs.setProduceName(produce.getProduceName());
|
|
ptsMachineLogs.setProcessName(produceProcess.getProcessName());
|
|
ptsMachineLogs.setProcessName(produceProcess.getProcessName());
|
|
ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
|
|
ptsMachineLogs.setDeviceName(ptsDevice.getDeviceName());
|
|
- ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
|
|
|
|
|
|
+ if(i == 0){//如果当前循环的是第一条数据则排序必须是1,否则为异常
|
|
|
|
+ if(produceProcess.getProcessSort() == 1){
|
|
|
|
+ if(processNode.getNodeStatus() == 0){//工序选项状态为异常则机器表状态也是异常
|
|
|
|
+ isAbnormality = false;
|
|
|
|
+ }
|
|
|
|
+ ptsMachineLogs.setLogsProcessStatus(processNode.getNodeStatus());
|
|
|
|
+ }else{
|
|
|
|
+ ptsMachineLogs.setLogsProcessStatus(0);
|
|
|
|
+ isAbnormality = false;
|
|
|
|
+ }
|
|
|
|
+ }else{//默认为正常
|
|
|
|
+ ptsMachineLogs.setLogsProcessStatus(1);
|
|
|
|
+ }
|
|
ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"异常操作": null);
|
|
ptsMachineLogs.setLogsProcessPrompt(processNode.getNodeStatus() == 0?"异常操作": null);
|
|
ptsMachineLogs.setLogsProcessTime(logsProcessDate);
|
|
ptsMachineLogs.setLogsProcessTime(logsProcessDate);
|
|
ptsMachineLogs.setLogsCreateTime(new Date());
|
|
ptsMachineLogs.setLogsCreateTime(new Date());
|
|
- machineLogsMapper.addMachineLogs(ptsMachineLogs);
|
|
|
|
- //根据下一条工序选项信息判断当前工序是否正常
|
|
|
|
- if(i+1 < nodes.size()){
|
|
|
|
- JSONObject jsonObject2 = nodes.getJSONObject(i+1);
|
|
|
|
|
|
+ //根据上一条工序选项信息判断当前工序是否正常,如果当前为修理工序则忽略,如果上一条为修理工序则查询上上一条
|
|
|
|
+ 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){
|
|
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());
|
|
|
|
|
|
+ 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:次品异常
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ num++;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //执行添加日志操作
|
|
|
|
+ machineLogsService.addMachineLogs(ptsMachineLogs);
|
|
|
|
+ }
|
|
|
|
+ //修改机器信息
|
|
|
|
+ if(isAbnormality){
|
|
|
|
+ PtsMachine ptsMachine2 = new PtsMachine();
|
|
|
|
+ ptsMachine2.setMachineId(ptsMachine.getMachineId());
|
|
|
|
+ ptsMachine2.setMachineProcessState(2);//2表示机器生产过程中出现异常
|
|
|
|
+ ptsMachine2.setMachineUpdateTime(new Date());
|
|
|
|
+ machineService.updateMachine(ptsMachine2);
|
|
}
|
|
}
|
|
//截取条形码尾号(4位)
|
|
//截取条形码尾号(4位)
|
|
rj.addResponseKeyValue("barcodeTail",berQrcode.substring(berQrcode.length()-4, berQrcode.length()));
|
|
rj.addResponseKeyValue("barcodeTail",berQrcode.substring(berQrcode.length()-4, berQrcode.length()));
|