1
10 小时以前 4d5c3bd8bfea7a5ae0b3cd606156a1e83e633bd9
rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/phyz/impl/ErpReportServiceImpl.java
@@ -12,7 +12,9 @@
import com.vincent.rsf.openApi.entity.constant.WmsConstant;
import com.vincent.rsf.openApi.entity.dto.CommonResponse;
import com.vincent.rsf.openApi.entity.phyz.ErpReportParams;
import com.vincent.rsf.openApi.entity.phyz.Material;
import com.vincent.rsf.openApi.entity.phyz.Order;
import com.vincent.rsf.openApi.entity.phyz.Warehouse;
import com.vincent.rsf.openApi.service.WmsErpService;
import com.vincent.rsf.openApi.service.phyz.ErpReportService;
import com.vincent.rsf.openApi.utils.ParamsMapUtils;
@@ -34,8 +36,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
@@ -70,9 +72,129 @@
        ERP_REPORT_URL = erpApi.getErpUrl();
    }
    @Override
    public String syncMaterial(List<Material> materialList){
        if (materialList.isEmpty()) {
            throw new CoolException("参数不能为空!!");
        }
        /**WMS基础配置链接*/
        String wmsUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.SYNC_MATNRS;
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        // Material -> BaseMatParms 字段一一对应后再下发
        List<Map<String, Object>> baseMatParamsList = materialToBaseMatParams(materialList);
        HttpEntity httpEntity2 = new HttpEntity<>(baseMatParamsList, headers);//cs
        // sync/warehouse
        ResponseEntity<String> exchange = restTemplate.exchange(wmsUrl, HttpMethod.POST, httpEntity2, String.class);//cs
        log.info("同步物料信息返回结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            throw new CoolException("查询失败!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults().setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
//                    JSONObject object = JSONObject.parseObject(JSONObject.toJSONString(result.getData()));
                    return "200";
                } else {
                    return result.getMsg();
//                    throw new CoolException("查询失败!!");
                }
            } catch (JsonProcessingException e) {
                return e.getMessage();
//                throw new CoolException(e.getMessage());
            }
        }
    }
    /**
     * Material 字段映射为 server 端 BaseMatParms 字段
     */
    private List<Map<String, Object>> materialToBaseMatParams(List<Material> materialList) {
        List<Map<String, Object>> mappedList = new ArrayList<>();
        for (Material material : materialList) {
            if (Objects.isNull(material)) {
                continue;
            }
            Map<String, Object> map = new HashMap<>();
            map.put("maktx", material.getMakTx());
            map.put("matnr", material.getMatNr());
            map.put("groupName", material.getGroupName());
            map.put("model", material.getModel());
            map.put("weight", material.getWeight() == null ? null : material.getWeight().toString());
            map.put("color", material.getColor());
            map.put("size", material.getSize());
            map.put("spec", material.getSpec());
            map.put("describle", material.getDescribe());
            map.put("unit", material.getUnit());
            mappedList.add(map);
        }
        return mappedList;
    }
    public int addOrderToServer(Order order) {
    @Override
    public String syncWareHouse(List<Warehouse> warehouseList){
        if (warehouseList.isEmpty()) {
            throw new CoolException("参数不能为空!!");
        }
        /**WMS基础配置链接*/
        String wmsUrl = wmsApi.getHost() + ":" + wmsApi.getPort() + WmsConstant.SYNC_WAREHOUSE;
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        headers.add("api-version", "v2.0");
        // Warehouse -> WarehouseParams 字段一一对应后再下发
        List<Map<String, Object>> warehouseParamsList = warehouseToWarehouseParams(warehouseList);
        HttpEntity httpEntity2 = new HttpEntity<>(warehouseParamsList, headers);//cs
        // sync/warehouse
        ResponseEntity<String> exchange = restTemplate.exchange(wmsUrl, HttpMethod.POST, httpEntity2, String.class);//cs
        log.info("同步仓库信息返回结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            throw new CoolException("查询失败!!");
        } else {
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.coercionConfigDefaults().setCoercion(CoercionInputShape.EmptyString, CoercionAction.AsEmpty);
            try {
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
//                    JSONObject object = JSONObject.parseObject(JSONObject.toJSONString(result.getData()));
                    return "200";
                } else {
                    return result.getMsg();
//                    throw new CoolException("查询失败!!");
                }
            } catch (JsonProcessingException e) {
                return e.getMessage();
//                throw new CoolException(e.getMessage());
            }
        }
    }
    /**
     * Warehouse 字段映射为 server 端 WarehouseParams 字段
     */
    private List<Map<String, Object>> warehouseToWarehouseParams(List<Warehouse> warehouseList) {
        List<Map<String, Object>> mappedList = new ArrayList<>();
        for (Warehouse warehouse : warehouseList) {
            if (Objects.isNull(warehouse)) {
                continue;
            }
            Map<String, Object> map = new HashMap<>();
            map.put("name", warehouse.getWareHouseName());
            map.put("code", warehouse.getUseOrgId());
            map.put("factory",  warehouse.getUseOrgName());
            map.put("address", warehouse.getAddress());
            map.put("type", null);
            map.put("longitude", null);
            map.put("latitude", null);
            mappedList.add(map);
        }
        return mappedList;
    }
    @Override
    public String addOrderToServer(Order order) {
        if (Objects.isNull(order.getOrderNo()) || order.getOrderNo().isEmpty()) {
            throw new CoolException("订单号不能为空!!");
        }
@@ -94,12 +216,16 @@
        JSONObject params = JSONObject.parseObject(JSON.toJSONString(order));
        JSONObject mappedData = ParamsMapUtils.apiMaps("erp", "orderId", params);
        mappedData.put("updateBy", "erp");
        mapParams = objectToMap(mappedData);
        maps.add(mapParams);
        log.info("修改订单信息及状态: {}, 请求参数: {}", wmsUrl, JSONArray.toJSONString(maps));
        HttpEntity<List<Map<String, Object>>> httpEntity = new HttpEntity<>(maps, headers);
        ArrayList<Order> orders = new ArrayList<>();
        orders.add(order);
        HttpEntity httpEntity2 = new HttpEntity<>(orders, headers);//cs
        // asnOrder/items/save
        ResponseEntity<String> exchange = restTemplate.exchange(wmsUrl, HttpMethod.POST, httpEntity, String.class);
        ResponseEntity<String> exchange = restTemplate.exchange(wmsUrl, HttpMethod.POST, httpEntity2, String.class);//cs
        log.info("订单修改返回结果: {}", exchange);
        if (Objects.isNull(exchange.getBody())) {
            throw new CoolException("查询失败!!");
@@ -110,13 +236,13 @@
                CommonResponse result = objectMapper.readValue(exchange.getBody(), CommonResponse.class);
                if (result.getCode() == 200) {
//                    JSONObject object = JSONObject.parseObject(JSONObject.toJSONString(result.getData()));
                    return 1;
                    return "200";
                } else {
                    return 0;
                    return result.getMsg();
//                    throw new CoolException("查询失败!!");
                }
            } catch (JsonProcessingException e) {
                return 0;
                return e.getMessage();
//                throw new CoolException(e.getMessage());
            }
        }