admin
2024-06-15 8cfe20288690f2ba46c804f41f39e8aa48c2dea0
jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -1,9 +1,26 @@
package com.jcdm.main.om.productionOrde.controller;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jcdm.common.core.domain.entity.SysUser;
import com.jcdm.common.core.domain.model.LoginUser;
import com.jcdm.common.utils.ServletUtils;
import com.jcdm.common.utils.StringUtils;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfoExcelImport;
import com.jcdm.main.om.productionOrde.mapper.OmProductionOrdeInfoMapper;
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
import com.jcdm.main.restful.factoryMes.service.RestfulService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.loadtime.Aj;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,6 +37,7 @@
import com.jcdm.common.enums.BusinessType;
import com.jcdm.common.utils.poi.ExcelUtil;
import com.jcdm.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
 * 生产工单Controller
@@ -27,10 +45,13 @@
 * @author ruimin
 * @date 2023-12-11
 */
@Slf4j
@RestController
@RequestMapping("/om/productionOrde")
public class OmProductionOrdeInfoController extends BaseController
{
    private static final Logger logger = LoggerFactory.getLogger("sys-user");
    @Autowired
    private IOmProductionOrdeInfoService omProductionOrdeInfoService;
@@ -42,8 +63,40 @@
    public TableDataInfo list(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        startPage();
//        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getWorkOrderNo, "W_202403120001"));
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
        return getDataTable(list);
    }
    @GetMapping("/checkCarCode")
    public AjaxResult checkCarCode(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        Integer i = 0;
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, omProductionOrdeInfo.getProductNum()));
        if(StringUtils.isNotBlank(list.get(0).getTrolleyYard())){
            i = 1;
        }
        return AjaxResult.success(i);
    }
    @GetMapping("/checkYzSfcCode")
    public AjaxResult checkYzSfcCode(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        Integer i = 0;
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, omProductionOrdeInfo.getProductNum()));
        if(StringUtils.isNotBlank(list.get(0).getSpareField2())){
            i = 1;
        }
        return AjaxResult.success(i);
    }
    @GetMapping("/bindYzSfcFlag")
    public AjaxResult bindYzSfcFlag(OmProductionOrdeInfo omProductionOrdeInfo)
    {
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum, omProductionOrdeInfo.getProductNum()));
        list.get(0).setSpareField2("1");
        omProductionOrdeInfoService.saveOrUpdate(list.get(0));
        return AjaxResult.success(null);
    }
    /**
@@ -57,6 +110,53 @@
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
        ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
        util.exportExcel(response, list, "生产工单数据");
    }
    @GetMapping("/receivingWorkOrders")
    public AjaxResult receivingWorkOrders()
    {
        String paramProductNum = "";
        // 查询最新的工单信息
        List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().orderByAsc(OmProductionOrdeInfo::getCreateTime));
        if(list.size() > 0){
            paramProductNum = list.get(list.size()-1).getProductNum();
        }
        String orderJsonString = RestfulService.getProductionWorkOrderRequest(paramProductNum, "OP230");
        JSONObject jsonObject = new JSONObject(orderJsonString);
        // 从JSONObject中获取data对象
        JSONObject dataObject = jsonObject.getJSONObject("data");
        String code = jsonObject.getStr("code");
        // 判断接单是否成功
        if(code.equals("success")){
            logger.info("请求工厂MES工单:入参pack{}出参pack:{}",paramProductNum,dataObject.getStr("productNum"));
            List<OmProductionOrdeInfo> check = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum,dataObject.getStr("productNum")));
            if(check.size() == 0){
                OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
                omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum"));
                omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
                omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode"));
                omProductionOrdeInfo.setMaterialCode(dataObject.getStr("materialCode"));
                if(dataObject.getStr("model").equals("PE01A")){
                    omProductionOrdeInfo.setProductCode("1P102S");
                }else {
                    omProductionOrdeInfo.setProductCode(dataObject.getStr("model"));
                }
                omProductionOrdeInfo.setCreateTime(new Date());
                omProductionOrdeInfo.setCreateUser("工厂MES");
                omProductionOrdeInfoService.save(omProductionOrdeInfo);
            }
        }else {
            return AjaxResult.error("接单失败,请联系管理员");
        }
        return AjaxResult.success(dataObject.getStr("productNum"));
    }
    @GetMapping(value = "/jieBang/{id}")
    public AjaxResult jieBang(@PathVariable("id") Long id)
    {
        OmProductionOrdeInfo byId = omProductionOrdeInfoService.getById(id);
        byId.setTrolleyYard("");
        return success(omProductionOrdeInfoService.saveOrUpdate(byId));
    }
    /**
@@ -111,4 +211,42 @@
    {
        return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
    }
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
        List<OmProductionOrdeInfo> ordeInfo = util.importExcel(file.getInputStream());
        for (OmProductionOrdeInfo omProductionOrdeInfo : ordeInfo) {
            omProductionOrdeInfo.setCreateTime(new Date());
            omProductionOrdeInfo.setCreateBy("工厂MES");
        }
        omProductionOrdeInfoService.overrideSaveBatch(ordeInfo);
        return AjaxResult.success();
    }
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response)
    {
        ExcelUtil<OmProductionOrdeInfoExcelImport> util = new ExcelUtil<OmProductionOrdeInfoExcelImport>(OmProductionOrdeInfoExcelImport.class);
        util.importTemplateExcel(response, "订单数据");
    }
    @PostMapping("/trolleyYardBinDing")
    public AjaxResult trolleyYardBinDing(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
    {
        return omProductionOrdeInfoService.trolleyYardBinDing(omProductionOrdeInfo);
    }
    @PostMapping("/getCarCodeSize")
    public AjaxResult getCarCodeSize(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
    {
        return omProductionOrdeInfoService.getCarCodeSize(omProductionOrdeInfo);
    }
    @PostMapping("/findBytrolleyYardGetOne")
    public AjaxResult findBytrolleyYardGetOne(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
    {
        return omProductionOrdeInfoService.findBytrolleyYardGetOne(omProductionOrdeInfo);
    }
}