huang
2025-05-20 2c2413760b6467bf62402dba7338bd3bbcbd7341
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/PrimitiveTaskController.java
@@ -1,9 +1,21 @@
package com.mes.md.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mes.md.entity.*;
import com.mes.md.mapper.KBBTJPDrawingBPMapper;
import com.mes.md.service.KBBTJPDrawingBPService;
import com.mes.md.service.PrimitiveTaskService;
import com.mes.md.service.TaskingLogService;
import com.mes.md.service.TaskingService;
import com.mes.utils.Result;
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.text.SimpleDateFormat;
import java.util.*;
/**
 * <p>
@@ -13,9 +25,126 @@
 * @author wu
 * @since 2024-08-28
 */
@Slf4j
@RestController
@RequestMapping("/primitiveTask")
public class PrimitiveTaskController {
    @Autowired
    private PrimitiveTaskService primitiveTaskService;
    @Autowired
    private KBBTJPDrawingBPService kBBTJPDrawingBPService;
    @Autowired
    KBBTJPDrawingBPMapper kBBTJPDrawingBPMapper;
    @Autowired
    TaskingLogService taskingLogService;
    @ApiOperation("查询当前设备,未完工状态的线上任务")
    @PostMapping("/selectPrimitiveTask")
    @ResponseBody
    public Result findMachineTask(@RequestBody PrimitiveTask primitiveTask) {
        List<PrimitiveTask> list =primitiveTaskService.selectPrimitiveTask(primitiveTask);
        return Result.build(200,"成功",list);
    }
    @ApiOperation("查询当前 标准,可领取的任务(客户表)")
    @PostMapping("/findKBBTJPDrawingBP")
    @ResponseBody
    public Result findKBBTJPDrawingBP() {
        List<KBBTJPDrawingBP> list =kBBTJPDrawingBPService.notReceiveKBBTJPDrawingBP();
        return Result.build(200,"成功",list);
    }
    @ApiOperation("领取或结束  ")
    @PostMapping("/startOrStopPrimitiveTasking")
    @ResponseBody
    public Result startOrStopPrimitiveTasking(@RequestBody PrimitiveTask primitiveTask) {
        int list =primitiveTaskService.startOrStopPrimitiveTasking(primitiveTask);
        return Result.build(200,"成功",list);
    }
    @ApiOperation("根据批次号进行手动报工")
    @PostMapping("/updatePrimitiveTask")
    @ResponseBody
    public Result updatePrimitiveTask(@RequestBody PrimitiveTask primitiveTask) {
        boolean list =primitiveTaskService.updatePrimitiveTask(primitiveTask);
        return Result.build(200,"成功",list);
    }
    @ApiOperation("查询 日产量未完成(客户表)")
    @PostMapping("/findDayNotCompleteOutput")
    @ResponseBody
    public Result findDayNotCompleteOutput(@RequestBody Map<String, String> map) {
        int dayCount=1-Integer.valueOf(map.get("dayCount").toString());
        Calendar cal = Calendar.getInstance();
        //设置当前时间
        cal.setTime(new Date());
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        cal.add(Calendar.DATE, dayCount);
        QueryWrapper<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("OrderNo,(sum(task_quantity-isNull(report_count,0))) as notComplete,sum(isNull((length*width*(task_quantity-isNull(report_count,0)))/1000000,0)) as area_sum").
                gt("PlanDate",cal.getTime()).having("sum(task_quantity-isNull(report_count,0))>0")
                .groupBy("OrderNo");
        List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper);
        return Result.build(200,"成功",list);
    }
    @ApiOperation("查询 日产量(客户表)")
    @PostMapping("/findDailyOutput")
    @ResponseBody
    public Result findDailyOutput(@RequestBody Map<String, String> map) {
        int dayCount=Integer.valueOf(map.get("dayCount").toString());
        List<Map> result=taskingLogService.selectTaskingLog(dayCount);
        return Result.build(200,"成功",result);
    }
    @ApiOperation("查询 计划量 m² 片数(客户表)")
    @PostMapping("/findPlannedQuantity")
    @ResponseBody
    public Result findPlannedQuantity(@RequestBody Map<String, String> map) {
        int dayCount=Integer.valueOf(map.get("dayCount").toString());
        Calendar cal = Calendar.getInstance();
        //设置当前时间
        cal.setTime(new Date());
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        cal.add(Calendar.DATE, 1-dayCount);
        Date startDate = cal.getTime();
        QueryWrapper<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("CAST(PlanDate AS DATE) AS CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum,isNull(sum(length*width*task_quantity)/1000000,0) as area_sum")
                .gt("PlanDate",startDate).groupBy("CAST(PlanDate AS DATE)")
                .orderByAsc("CAST(PlanDate AS DATE)");;
        List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper);
        List<Map> resultDate=new ArrayList<>();
        for (int i=0;i<dayCount;i++){
            Date thisdate=cal.getTime();
            cal.add(Calendar.DATE, 1);
            Map thisMap=new HashMap<>();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String dateString = sdf.format(thisdate);
            thisMap.put("CreateDate",dateString);
//            if(list.size()>0){
//                log.info("对比:{},{},{}",list.get(0).get("CreateDate"),dateString,list.get(0).get("CreateDate").toString().equals(dateString));
//            }
            if (list.size()>0&&list.get(0).get("CreateDate").toString().equals(dateString)){
                thisMap.put("task_quantity_sum",list.get(0).get("task_quantity_sum"));
                thisMap.put("area_sum",list.get(0).get("area_sum"));
                list.remove(0);
            }else{
                thisMap.put("task_quantity_sum",0);
                thisMap.put("area_sum",0);
            }
            resultDate.add(thisMap);
        }
        return Result.build(200,"成功",resultDate);
    }
}