You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

282 lines
9.4 KiB
Java

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.aucma.api.controller;
import com.aucma.api.domain.dto.CheckInfoDto;
import com.aucma.api.domain.dto.RepairSubmitInfoDto;
import com.aucma.api.service.IPdaBindingService;
import com.aucma.base.domain.BaseProcessStation;
import com.aucma.base.service.IBaseProcessStationService;
import com.aucma.common.core.domain.AjaxResult;
import com.aucma.common.utils.SecurityUtils;
import com.aucma.common.utils.StringUtils;
import com.aucma.report.domain.RecordExceptionProcess;
import com.aucma.report.domain.ReportQualityInspection;
import com.aucma.report.service.IMaterialCompletionService;
import com.aucma.report.service.IReportQualityInspectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import static com.aucma.common.core.domain.AjaxResult.error;
import static com.aucma.common.core.domain.AjaxResult.success;
/**
* @author wanghao
* @date 2023/11/14 9:28
*/
@RestController
@RequestMapping("/api")
public class PdaApiController {
@Autowired
private IPdaBindingService service;
@Autowired
private IBaseProcessStationService baseProcessStationService;
@Autowired
private IMaterialCompletionService completionService;
@Autowired
private IReportQualityInspectionService qualityService;
//壳胆绑定-提交
@PostMapping("/boxBanding")
public AjaxResult binding(String boxCode, String innerCode, String loginName) {
String boxName = service.selectBoxNameByCode(boxCode);
if (StringUtils.isNotNull(boxName)) {
service.insertBindingInfo(boxCode, boxName, innerCode);
return success();
}
return error("箱壳条码扫描错误");
}
//条码绑定
@PostMapping("/barCodeBanding")
public AjaxResult barCodeBanding(String boxCode, String innerCode, String loginName) {
// 查询质检缺陷有没有修复
int countQa = service.countQualityRecordByCode(boxCode);
if (countQa > 0) {
return error("返修中" + countQa + "条未处理,不允许绑定");
}
// 查询插入
return toAjax(service.updateCodeBinding(boxCode, innerCode));
}
@PostMapping("/selectGoodsName")
public AjaxResult selectGoodsName(String code) {
String boxName = service.selectBoxNameByCode(code);
if (boxName == null) {
return error("查询失败,条码不正确");
}
return success("操作成功", boxName);
}
// 质检查询名称、前工位返修数据
@PostMapping("/check/select")
public AjaxResult checkSelect(String code) {
String boxName = service.selectBoxNameByCode(code);
if (boxName == null) {
// boxName = "固定数据";
return error("箱壳条码扫描错误");
}
List<ReportQualityInspection> list = service.checkSelectRepairInfo(code);
return success(boxName, list);
}
/**
* 质量检测:查询物料名称、前工位返修数据
* @param code
* @return
*/
@PostMapping("/check/query")
public AjaxResult checkQuery(String code, String station) {
String boxName = service.selectBoxNameByCode(code);
if (boxName == null) {
// boxName = "固定数据";
return error("条码信息扫描错误!");
}
//检验前一工位是否已完成质检
if (StringUtils.isNotEmpty(station)){
String result = qualityService.checkBeforeStationInspection(code, station);
if (StringUtils.isNotNull(result)){
return error(result);
}
}
List<ReportQualityInspection> list = service.checkSelectRepairInfo(code);
return success(boxName, list);
}
// 质检提交
@PostMapping("/checkSubmit")
public AjaxResult checkSubmit(@RequestBody CheckInfoDto checkInfo) {
List<CheckInfoDto.DefectBeen> list = checkInfo.getList();
int size = (list == null || list.isEmpty()) ? 1 : list.size();
for (int i = 0; i < size; i++) {
ReportQualityInspection inspection = new ReportQualityInspection();
inspection.setBarCode(checkInfo.getCode());
inspection.setMaterialName(checkInfo.getName());
String measure = checkInfo.getMeasure();
inspection.setTreatmentMeasure(measure);
if (measure.equals("3")) {
inspection.setIsFlag(1L);
}
//检测人
// inspection.setInspectorCode(checkInfo.getUserName());
inspection.setInspectorCode(SecurityUtils.getUsername());
inspection.setInspectorTime(new Date());
inspection.setStationCode(checkInfo.getStationCode());
inspection.setGroupCode(checkInfo.getTeamCode());
try {
// 查质检工序
BaseProcessStation processStation = new BaseProcessStation();
processStation.setParentId(checkInfo.getStationCode());
List<BaseProcessStation> processStations = baseProcessStationService.selectBaseProcessStationList(processStation);
inspection.setProcessCode(processStations.get(0).getProcessCode());
} catch (Exception e) {
e.printStackTrace();
}
assert list != null;
if (!list.isEmpty()) {
CheckInfoDto.DefectBeen defectBeen = list.get(i);
inspection.setSubmitQualtyId(defectBeen.getObjId());
inspection.setTestItemCode(list.get(i).getStationCode());
inspection.setQualityDefectCode(list.get(i).getQualityDefectCode());
inspection.setQualityDefectName(list.get(i).getQualityDefectName());
}
qualityService.insertReportQualityInspection(inspection);
//质检处理措施3=合格,1=返修)
if (inspection.getTreatmentMeasure().equals("3")) {
try {
completionService.inspectionProcessing(inspection);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return success();
}
//返修查询质检信息
@PostMapping("/findCheckInfoByCode")
public AjaxResult findCheckInfoByCode(String code) {
List<ReportQualityInspection> list = service.findCheckInfoByCode(code);
if (list == null || list.isEmpty()) {
return error("扫描条码不正确或无返修信息");
}
return success(list);
}
//返修提交质检信息
@PostMapping("/submitRepair")
public AjaxResult submitRepair(@RequestBody RepairSubmitInfoDto info) {
int i = service.submitRepair(info);
if (i == 999){
return error("该箱体未审批完成,无法降级!");
}
if(i > 0){
return success("操作成功!");
}else {
return error("该箱体已完成返修!");
}
}
private AjaxResult toAjax(int rows) {
return rows > 0 ? AjaxResult.success() : AjaxResult.error();
}
/**
* PDA查询当班质检数量
*
* @param stationCode 质检记录管理
* @return 质检记录管理集合
*/
@PostMapping("/pdaQueryQuantityNumber")
public AjaxResult pdaQueryQuantityNumber(String stationCode) {
return success(qualityService.pdaQueryQuantityNumber(stationCode));
}
/**
* PDA补打条码
*
* @param barCode
* @return
*/
@PostMapping("/rebarCode")
public AjaxResult rebarCode(String barCode) {
String result = service.rebarCode(barCode);
if (StringUtils.isNotEmpty(result)){
return error(result);
}
return success( "请到条码打印机旁进行补打条码!");
}
/**
* PDA解绑条码
*
* @param barCode
* @return
*/
@PostMapping("/unbindBarCode")
public AjaxResult unbindBarCode(String barCode) {
String result = service.unbindBarCode(barCode);
if (StringUtils.isEmpty(result)){
return error("条码信息输入错误!");
}
return success(result);
}
/**
* PDA降级消息通知
* @param userName
* @return
*/
@PostMapping("/messageNotifications")
public AjaxResult messageNotifications(String userName) {
String result = service.messageNotifications(userName);
if (StringUtils.isEmpty(result)){
return error("无消息提醒!");
}
return success(result);
}
/**
* PDA切换订单
* @param barCode
* @param stationCode
* @return
*/
@PostMapping("/switchOrders")
public AjaxResult switchOrders(String barCode,String stationCode) {
String result = service.switchOrders(barCode, stationCode);
if (StringUtils.isEmpty(result)){
return error("条码信息输入错误!");
}
return success(result);
}
/**
* PDA降级信息查询
* @param inspectionUserFlag 巡检班长降级标识(1=已降级2=未降级)
* @return
*/
@PostMapping("/downgradeQuery")
public AjaxResult downgradeQuery(String inspectionUserFlag) {
if (StringUtils.isEmpty(inspectionUserFlag)){
return error();
}
List<RecordExceptionProcess> list = service.selectExceptionProcessList(inspectionUserFlag);
return success(list);
}
}