新火炬后端单体项目初始化代码
zhangherong
3 天以前 1c38849eebe0179b7ebad1db30b3335a41cc47e9
src/main/java/org/jeecg/modules/mes/controller/MesProductionWorkOrderController.java
@@ -1,36 +1,30 @@
package org.jeecg.modules.mes.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.mes.dto.MesProductionWorkOrderRepublishRequest;
import org.jeecg.modules.mes.dto.MesProductionWorkScheduleRequest;
import org.jeecg.modules.mes.entity.MesKittingCompletenessCheck;
import org.jeecg.modules.mes.entity.MesProductionWorkOrder;
import org.jeecg.modules.mes.enums.ProductionWorkOrderStatus;
import org.jeecg.modules.mes.service.IMesProductionWorkOrderService;
import org.jeecg.modules.mes.utils.CommonUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@@ -49,10 +43,6 @@
public class MesProductionWorkOrderController extends JeecgController<MesProductionWorkOrder, IMesProductionWorkOrderService> {
    @Autowired
    private IMesProductionWorkOrderService mesProductionWorkOrderService;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private TranslateDictTextUtils translateDictTextUtils;
    /**
     * 分页列表查询
@@ -66,7 +56,7 @@
    //@AutoLog(value = "排产工单-分页列表查询")
    @ApiOperation(value = "排产工单-分页列表查询", notes = "排产工单-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<?>> queryPageList(MesProductionWorkOrder mesProductionWorkOrder,
    public Result<IPage<MesProductionWorkOrder>> queryPageList(MesProductionWorkOrder mesProductionWorkOrder,
                                                               @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                               @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                               HttpServletRequest req) {
@@ -147,7 +137,7 @@
    @AutoLog(value = "排产工单-发布排产计划")
    @ApiOperation(value = "排产工单-发布排产计划", notes = "排产工单-发布排产计划")
    //@RequiresPermissions("mes:production:work:order:publish")
    //@RequiresPermissions("org.jeecg.modules:mes_production_work_order:publish")
    @RequestMapping(value = "/publish", method = {RequestMethod.POST, RequestMethod.PUT})
    public Result<String> publish(@RequestParam("ids") String ids) {
        List<String> idList = Arrays.asList(ids.split(","));
@@ -164,7 +154,7 @@
            MesProductionWorkOrder publish = new MesProductionWorkOrder()
                    .setId(id)
                    .setPublishTime(new Date())
                    .setPublisher(Objects.requireNonNull(getCurrentUser()).getUsername())
                    .setPublisher(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername())
                    .setWorkOrderStatus(ProductionWorkOrderStatus.PUBLISHED.name());
            publishList.add(publish);
        });
@@ -174,23 +164,55 @@
    @AutoLog(value = "排产工单-重发布排产计划")
    @ApiOperation(value="排产工单-重发布排产计划", notes="重发布排产计划")
    //@RequiresPermissions("mes:production:work:order:republish")
    //@RequiresPermissions("org.jeecg.modules:mes_production_work_order:republish")
    @PostMapping(value = "/republish")
    public Result<String> republish(@RequestBody MesProductionWorkOrderRepublishRequest request) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(request.getId());
        //todo 判断班次是否结束的逻辑
        if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(workOrder.getWorkOrderStatus())) {
        if (ProductionWorkOrderStatus.NEW.name().equals(workOrder.getWorkOrderStatus())
                || ProductionWorkOrderStatus.CLOSED.name().equals(workOrder.getWorkOrderStatus())) {
            return Result.error("当前工单状态不支持重发布!");
        }
        MesProductionWorkOrder republish = new MesProductionWorkOrder()
                .setId(request.getId())
                .setPlanQuantity(request.getPlanQuantity())
                .setRepublisher(Objects.requireNonNull(getCurrentUser()).getUsername())
                .setRepublisher(Objects.requireNonNull(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername()))
                .setRepublishTime(new Date())
                .setRepublishReason(request.getRepublishReason())
                .setWorkOrderStatus(ProductionWorkOrderStatus.REPUBLISHED.name());
                .setRepublishReason(request.getRepublishReason());
        mesProductionWorkOrderService.updateById(republish);
        return Result.ok("重发布成功!");
    }
    @AutoLog(value = "排产工单-齐套性检查")
    @ApiOperation(value="排产工单-齐套性检查", notes="齐套性检查")
    //@RequiresPermissions("org.jeecg.modules:mes_production_work_order:workOrderCompletenessCheck")
    @GetMapping(value = "/workOrderCompletenessCheck")
    public Result<List<MesKittingCompletenessCheck>> workOrderCompletenessCheck(@RequestParam("id") String id) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(id);
        if (workOrder == null) {
            return Result.error("工单不存在!");
        }
        if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(workOrder.getWorkOrderStatus())) {
            return Result.error("当前工单状态不能进行齐套性检查!");
        }
        List<MesKittingCompletenessCheck> list = mesProductionWorkOrderService.workOrderCompletenessCheck(workOrder);
        return Result.ok(list);
    }
    @AutoLog(value = "排产工单-执行排产工单计划")
    @ApiOperation(value = "排产工单-执行排产工单计划", notes = "排产工单-执行排产工单计划")
    //@RequiresPermissions("org.jeecg.modules:mes_production_work_order:execute")
    @GetMapping(value = "/execute")
    public Result<?> execute(@RequestParam("id") String id) {
        MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(id);
        if (!ProductionWorkOrderStatus.PUBLISHED.name().equals(workOrder.getWorkOrderStatus())) {
            return Result.error("当前工单状态不能执行!");
        }
        //todo 齐套性检查、工艺点检、设备点检 的校验逻辑
        MesProductionWorkOrder executeOrder = new MesProductionWorkOrder()
                .setId(id)
                .setWorkOrderStatus(ProductionWorkOrderStatus.EXECUTING.name());
        mesProductionWorkOrderService.updateById(executeOrder);
        return Result.ok("执行成功!");
    }
    /**
@@ -280,11 +302,4 @@
        return super.importExcel(request, response, MesProductionWorkOrder.class);
    }
    private LoginUser getCurrentUser() {
        try {
            return (LoginUser) SecurityUtils.getSubject().getPrincipal();
        } catch (Exception e) {
            return null;
        }
    }
}