package org.jeecg.modules.itdmTestPlan.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;

import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.modules.itdmDevice.entity.ItdmDevice;
import org.jeecg.modules.itdmDevice.service.IItdmDeviceService;
import org.jeecg.modules.itdmTestPlan.entity.ItdmTestPlan;
import org.jeecg.modules.itdmTestPlan.service.IItdmJCXMSHJHService;
import org.jeecg.modules.itdmTestPlan.service.IItdmTestPlanService;
import org.jeecg.modules.itdmTestPlan.vo.ItdmJCXMAndSYJHVO;
import org.jeecg.modules.itdmTestPlan.vo.ItdmJHYQueryListVO;
import org.jeecg.modules.weituo.entity.ItdmWeituoInfo;
import org.jeecg.modules.weituo.entity.ItdmWeituoYangpin;
import org.jeecg.modules.weituo.mapper.ItdmWeituoYangpinMapper;
import org.jeecg.modules.weituo.service.IItdmWeituoInfoService;
import org.jeecg.modules.weituo.vo.ItdmWeituoInfoInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 试验计划
 * @Author: jeecg-boot
 * @Date:   2023-05-21
 * @Version: V1.0
 */
@Api(tags="计划排期")
@RestController
@RequestMapping("/sych")
@Slf4j
public class ItdmJCXMSHJHController {

    @Autowired
    @SuppressWarnings("all")
    private IItdmTestPlanService itdmTestPlanService;
    @Autowired
    @SuppressWarnings("all")
    private IItdmJCXMSHJHService iItdmJCXMSHJHService;

    /**
     * 计划员查询列表
     */
    @ApiOperation(value="计划员查询列表", notes="通过委托id查询，得到委托单的检测项目、试验计划部分信息")
    @GetMapping(value = "/JHYList")
    public Result<List<ItdmJHYQueryListVO>> JHYList3(@RequestParam("weituoNo") String weituoNo) {
        List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll3(weituoNo);
        return Result.OK(list);
    }

    /**
     * 计划员新增或修改试验计划
     */
    @AutoLog(value = "计划员新增或修改试验计划")
    @ApiOperation(value="计划员新增或修改试验计划", notes="计划员新增或修改试验计划——直接left join")
    @PostMapping(value = "/addOrUpdate")
    public Result<String> addAndUpdate(@RequestBody List<ItdmJHYQueryListVO> list) {
        List<ItdmTestPlan> vos = new ArrayList<>();

        for(ItdmJHYQueryListVO vo:list){
            ItdmTestPlan itdmTestPlan = new ItdmTestPlan();
            itdmTestPlan.setWeituoId(vo.getWeituoId());
            itdmTestPlan.setTestItemsId(vo.getTestItemsId());
            itdmTestPlan.setWeituoYangpinId(vo.getYangpinId());
            itdmTestPlan.setShebeiId(vo.getShebeiId());
            itdmTestPlan.setPm(vo.getPm());
            itdmTestPlan.setJihuaStartDate(vo.getJihuaStartDate());
            itdmTestPlan.setJihuaEndDate(vo.getJihuaEndDate());
            itdmTestPlan.setReportNo(vo.getReportNo());
            itdmTestPlan.setChuanganqi(vo.getChuanganqi());
            if(vo.getTestPlanId()==null){ //新增试验计划
                itdmTestPlan.setStatus(0);//试验计划初始状态为未确认0
                itdmTestPlanService.save(itdmTestPlan);
                vos.add(itdmTestPlan);
            }else if(vo.getStatus() == 0){//状态为“未确定”，可以修改试验计划
                itdmTestPlan.setId(vo.getTestPlanId());
                itdmTestPlanService.updateById(itdmTestPlan);
                vos.add(itdmTestPlan);
            }
        }
        return Result.OK("提交成功！");
    }


//    /**
//     * 项目经理查询列表
//     */
//    @ApiOperation(value="项目经理查询列表", notes="通过委托id查询，得到一级：检测项目和试验计划，二级：检测项目和工单master")
//    @GetMapping(value = "/XMJLList")
//    public Result<List<ItdmJHYQueryListVO>> XMJLList(@Param("weituoId") String weituoId) {
//        List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll(weituoId);
//        return Result.OK(list);
//    }



//    /**
//     * 计划员查询列表
//     */
//    @ApiOperation(value="计划员查询列表", notes="通过委托id查询，得到委托单的检测项目、试验计划部分信息")
//    @GetMapping(value = "/JHYList")
//    public Result<List<ItdmJHYQueryListVO>> JHYList(@RequestParam("weituoNo") String weituoNo) {
//        List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll2(weituoNo);
//        return Result.OK(list);
//    }

    /**
     * 测试
     * */
    @ApiOperation(value="测试查出后再往vo里组", notes="测试")
    @GetMapping(value = "/cs")
    public Result<List<ItdmJHYQueryListVO>> JHYList2(@RequestParam("weituoNo") String weituoNo) {
        List<ItdmJHYQueryListVO> list = iItdmJCXMSHJHService.getAll(weituoNo);
        return Result.OK(list);
    }


}
