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.

150 lines
5.4 KiB
Java

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.StringUtils;
import com.aucma.report.domain.ReportQualityInspection;
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 java.util.Optional;
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;
//壳胆绑定-提交
@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);
}
@Autowired
private IReportQualityInspectionService qualityService;
// 质检查询名称、前工位返修数据
@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);
}
// 质检提交
@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.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);
}
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) {
return toAjax(service.submitRepair(info));
}
private AjaxResult toAjax(int rows) {
return rows > 0 ? AjaxResult.success() : AjaxResult.error();
}
}