package com.chinaztt.mes.basic.util; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.chinaztt.mes.basic.entity.Part; import com.chinaztt.mes.basic.entity.PartBean; import com.chinaztt.mes.basic.mapper.PartMapper; import com.chinaztt.ztt.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * @Author: cxf * @Date: 2021/06/03 11:20 */ @Service @AllArgsConstructor public class PartUtils { private PartBean partBean; private PartMapper partMapper; public JSONObject getErpPart(Part part) { JSONObject inAttr = new JSONObject(); inAttr.put("PART_NO", part.getPartNo()); inAttr.put("PART_DESC", part.getPartName()); Map paramMap = new HashMap<>(16); paramMap.put("contract", partBean.getRegion()); try { if (StringUtils.isNotBlank(partBean.getSecretKey())) { paramMap.put("contractKey", partBean.getSecretKey()); } else if (StringUtils.isNotBlank(partBean.getCleartextSecretKey())) { paramMap.put("contractKey", AesUtils.encrypt(partBean.getCleartextSecretKey())); } } catch (Exception e) { throw new RuntimeException("明文密钥加密失败"); } paramMap.put("procedureName", partBean.getName()); paramMap.put("userId", SecurityUtils.getUser().getUsername()); paramMap.put("inAttr", inAttr); String result = HttpRequest.get(partBean.getIp()).form(paramMap).execute().body(); return JSONObject.parseObject(result); } /** * 根据零件号去erp接口查询零件,并生成零件 * * @param partNo * @return */ public Part getErpPartByPartNo(String partNo) { Part part = new Part(); part.setPartNo(partNo); JSONObject obj = getErpPart(part); if (obj != null && obj.getInteger(PartBean.COUNT) > 0) { JSONArray partList = obj.getJSONArray(PartBean.INVENTORY_PART_INFO); JSONObject erpPart = partList.getJSONObject(0); part.setPartName(erpPart.getString(PartBean.PART_DESC)); part.setUnit(erpPart.getString(PartBean.UNIT_MEAS)); } else { part.setPartName(""); } part.setMaterialType(""); part.setUseSystemNo(false); partMapper.insert(part); return part; } }