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 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 list = service.checkSelectRepairInfo(code); return success(boxName, list); } // 质检提交 @PostMapping("/checkSubmit") public AjaxResult checkSubmit(@RequestBody CheckInfoDto checkInfo) { List 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 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 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 list = service.selectExceptionProcessList(inspectionUserFlag); return success(list); } }