hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -1,21 +1,141 @@
package com.mes.damage.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.DamagePrint;
import com.mes.damage.entity.dto.DamageDTO;
import com.mes.damage.entity.request.DamageRequest;
import com.mes.damage.entity.vo.FlowCardDamageVO;
import com.mes.damage.entity.vo.GlassDamageVO;
import com.mes.damage.service.DamageService;
import com.mes.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  前端控制器
 * 前端控制器
 * </p>
 *
 * @author wu
 * @since 2024-06-13
 * @since 2024-06-25
 */
@Api(tags = "报工信息")
@RestController
@RequestMapping("/glassinfo/damage")
@RequestMapping("/damage")
@ResponseBody
@Slf4j
public class DamageController {
    @Autowired(required = true)
    private DamageService damageService;
    @ApiOperation("报工数据查询")
    @PostMapping("/selectDamage")
    public Result<Page<DamageDTO>> selectDamage(@RequestBody Map map) {
        String startTime = map.get("startTime").toString();
        String endTime = map.get("endTime").toString();
        int type = Integer.parseInt(map.get("type").toString());
        int status = Integer.parseInt(map.get("status").toString());
        String workingProcedure = map.get("workingProcedure").toString();
        int pageNo = Integer.parseInt(map.get("pageNo").toString());
        int pageSize = Integer.parseInt(map.get("pageSize").toString());
        return Result.build(200, "查询成功", damageService.selectDamage(startTime, endTime, type, status, workingProcedure, pageNo, pageSize));
    }
    @ApiOperation("报工")
    @PostMapping("/submitDamage")
    public Result submitDamage(@RequestBody List<Damage> damageList) {
        damageService.submitDamage(damageList);
        if (damageList.get(0).getStatus() == 1) {
            damageList.forEach(damage -> damage.setStatus(3));
        } else {
            damageList.forEach(damage -> damage.setStatus(8));
        }
        damageService.updateBatchById(damageList);
        return Result.build(200, "报工成功", 1);
    }
    @ApiOperation("报工数据修改")
    @PostMapping("/updateDamage")
    public Result updateDamage(@RequestBody List<Damage> damageList) {
        damageService.updateBatchById(damageList);
        return Result.build(200, "修改成功", 1);
    }
    @ApiOperation("报工数据新增")
    @PostMapping("/insertDamage")
    public Result insertDamage(@RequestBody Damage damage) {
        damageService.insertDamage(damage);
        return Result.build(200, "新增成功", 1);
    }
    @ApiOperation("拿走数据查询")
    @PostMapping("/selectDamagePrint")
    public Result selectDamagePrint(@RequestBody Damage damage) {
        List<DamagePrint> damage2 = damageService.selectDamagePrint(damage);
        return Result.build(200, "查询成功", damage2);
    }
    @ApiOperation("拿走打印查询")
    @PostMapping("/selectDamagePrintDetails")
    public Result selectDamagePrintDetails(@RequestBody Damage damage) {
        List<DamagePrint> damage2 = damageService.selectDamagePrintDetails(damage);
        return Result.build(200, "查询成功", damage2);
    }
    @ApiOperation("自动报工")
    @PostMapping("/autoSubmitReport")
    public Result autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) {
        damageService.autoSubmitReport(glassId, deviceId, workingProcedure, remark, type);
        return Result.build(200, "查询成功", "");
    }
    @ApiOperation("自动报工测试")
    @PostMapping("/submitReport")
    public Result submitReport() {
//        for (int i = 0; i < 50; i++) {
            Damage damage = new Damage();
            damage.setProcessId("NG25110702A004");
            damage.setWorkingProcedure("磨边");
            damage.setOrderNumber(2);
            damage.setTechnologyNumber(2);
            damageService.submitReport(damage);
//            log.info("当前循环次数{}", i);
//            try {
//                // 方式1:使用Thread.sleep(推荐,直观)
//                Thread.sleep(5000); // 10000毫秒 = 10秒
//                // 方式2:使用TimeUnit(语义更清晰,可选)
//                // TimeUnit.SECONDS.sleep(10);
//            } catch (InterruptedException e) {
//                // 捕获中断异常,恢复线程中断状态(避免后续逻辑异常)
//                Thread.currentThread().interrupt();
//                // 日志记录中断信息
//                // 可选:中断后是否退出循环(根据业务需求调整)
//                // break; // 中断则退出循环
//                // continue; // 中断则跳过当前等待,继续下一次循环
//            }
//        }
        return Result.build(200, "查询成功", "");
    }
    @ApiOperation("玻璃进度查询")
    @PostMapping("/queryProgress")
    public Result<List<GlassDamageVO>> queryProgress(@RequestBody DamageRequest damageRequest) {
        return Result.build(200, "查询成功", damageService.queryProgress(damageRequest));
    }
    @ApiOperation("流程卡进度查询")
    @PostMapping("/queryFlowCardIdProgress")
    public Result<List<FlowCardDamageVO>> queryFlowCardIdProgress(@RequestBody DamageRequest damageRequest) {
        return Result.build(200, "查询成功", damageService.queryFlowCardIdProgress(damageRequest));
    }
}