feat: 新增webservice库,同步主数据平台数据
This commit is contained in:
parent
5358dcca31
commit
ef88d6829e
@ -124,6 +124,27 @@
|
|||||||
<artifactId>jtds</artifactId>
|
<artifactId>jtds</artifactId>
|
||||||
<version>1.3.1</version>
|
<version>1.3.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--WebService-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web-services</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--JAXB(用于处理XML和SOAP消息)-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-oxm</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--CXF webservices-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cxf</groupId>
|
||||||
|
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
|
||||||
|
<version>4.0.3</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.jws</groupId>
|
||||||
|
<artifactId>jakarta.jws-api</artifactId>
|
||||||
|
<version>2.1.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.ktg.mes.md.service;
|
||||||
|
|
||||||
|
import javax.jws.WebMethod;
|
||||||
|
import javax.jws.WebParam;
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.swing.*;
|
||||||
|
|
||||||
|
@WebService(name = "masterDataSyncService", targetNamespace = "http://server.spring.zhang.pers/")
|
||||||
|
public interface IMasterDataSyncService {
|
||||||
|
/**
|
||||||
|
* 同步物料数据
|
||||||
|
* @param materialListStr 物料列表
|
||||||
|
*/
|
||||||
|
@WebMethod(operationName = "syncMaterial")
|
||||||
|
String syncMaterial(@WebParam(name = "materialList") Spring materialListStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步物料分类数据
|
||||||
|
* @param materialCategoryListStr 物料分类列表
|
||||||
|
*/
|
||||||
|
@WebMethod(operationName = "syncMaterialCategory")
|
||||||
|
String syncMaterialCategory(@WebParam(name = "materialCategoryList") Spring materialCategoryListStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步计量单位数据
|
||||||
|
* @param unitListStr 计量单位列表
|
||||||
|
*/
|
||||||
|
@WebMethod(operationName = "syncUnit")
|
||||||
|
String syncUnit(@WebParam(name = "unitList") Spring unitListStr);
|
||||||
|
}
|
@ -0,0 +1,177 @@
|
|||||||
|
package com.ktg.mes.md.service.impl;
|
||||||
|
|
||||||
|
import com.ktg.common.core.domain.entity.ItemType;
|
||||||
|
import com.ktg.mes.md.domain.MdItem;
|
||||||
|
import com.ktg.mes.md.domain.MdUnitMeasure;
|
||||||
|
import com.ktg.mes.md.service.IMasterDataSyncService;
|
||||||
|
import com.ktg.mes.md.service.IMdItemService;
|
||||||
|
import com.ktg.mes.md.service.IMdUnitMeasureService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.codehaus.jackson.JsonNode;
|
||||||
|
import org.codehaus.jackson.map.ObjectMapper;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class MasterDataSyncServiceImpl implements IMasterDataSyncService {
|
||||||
|
private final ItemTypeServiceImpl itemTypeService;
|
||||||
|
private final IMdItemService mdItemService;
|
||||||
|
private final IMdUnitMeasureService mdUnitMeasureService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步物料数据
|
||||||
|
* @param materialListStr 物料列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String syncMaterial(Spring materialListStr) {
|
||||||
|
// 使用 ObjectMapper 来处理 JSON
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析传入的 JSON 字符串
|
||||||
|
String jsonList = objectMapper.readTree(materialListStr.toString()).get("LIST").asText();
|
||||||
|
JsonNode jsonNode = objectMapper.readTree(jsonList);
|
||||||
|
|
||||||
|
for (JsonNode node : jsonNode) {
|
||||||
|
JsonNode jsonNode1 = null;
|
||||||
|
// 通用工具工装
|
||||||
|
if (!node.get("T_TYGJGZ").asText().isEmpty()) {
|
||||||
|
jsonNode1 = objectMapper.readTree(node.get("T_TYGJGZ").asText());
|
||||||
|
// 专用工具工装
|
||||||
|
} else if (!node.get("T_ZYGJGZ").asText().isEmpty()) {
|
||||||
|
jsonNode1 = objectMapper.readTree(node.get("T_ZYGJGZ").asText());
|
||||||
|
}
|
||||||
|
if (jsonNode1 != null) {
|
||||||
|
MdItem mdItem = new MdItem();
|
||||||
|
mdItem.setItemName(jsonNode1.get("MC").asText());
|
||||||
|
mdItem.setItemCode(jsonNode1.get("WLBM").asText());
|
||||||
|
|
||||||
|
// 查询并设置计量单位数据
|
||||||
|
MdUnitMeasure unit = mdUnitMeasureService.selectMdUnitByCode(jsonNode1.get("UNIT").asText());
|
||||||
|
mdItem.setUnitName(unit.getMeasureName());
|
||||||
|
mdItem.setUnitOfMeasure(unit.getMeasureName());
|
||||||
|
|
||||||
|
// 四级分类数据
|
||||||
|
String categoryName = jsonNode1.get("SIJFL").asText();
|
||||||
|
if (categoryName.isEmpty()) {
|
||||||
|
// 为空则使用三级分类数据
|
||||||
|
categoryName = jsonNode1.get("SJFL").asText();
|
||||||
|
}
|
||||||
|
ItemType itemType = itemTypeService.selectItemTypeByName(categoryName);
|
||||||
|
mdItem.setItemOrProduct(itemType.getItemOrProduct());
|
||||||
|
mdItem.setItemTypeId(itemType.getItemTypeId());
|
||||||
|
mdItem.setItemTypeName(itemType.getItemTypeName());
|
||||||
|
|
||||||
|
mdItemService.insertMdItem(mdItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return "同步失败,原因:" + e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "1"; // 返回成功标识
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步物料分类数据
|
||||||
|
* @param materialCategoryListStr 物料分类列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String syncMaterialCategory(Spring materialCategoryListStr) {
|
||||||
|
// 使用 ObjectMapper 来处理 JSON
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析传入的 JSON 字符串
|
||||||
|
String jsonList = objectMapper.readTree(materialCategoryListStr.toString()).get("LIST").asText();
|
||||||
|
JsonNode jsonNode = objectMapper.readTree(jsonList);
|
||||||
|
|
||||||
|
for (JsonNode node : jsonNode) {
|
||||||
|
ItemType itemType = new ItemType();
|
||||||
|
itemType.setItemTypeName(node.get("NAME").asText());
|
||||||
|
itemType.setItemTypeCode(node.get("CODE").asText());
|
||||||
|
|
||||||
|
// 判断是否有父级分类
|
||||||
|
String parentCode = node.get("PCODE").asText();
|
||||||
|
if (!parentCode.isEmpty()) {
|
||||||
|
ItemType itemTypeQuery = new ItemType();
|
||||||
|
itemTypeQuery.setItemTypeCode(parentCode);
|
||||||
|
// 查询父级数据
|
||||||
|
List<ItemType> parentItemTypeList = itemTypeService.selectItemTypeList(itemTypeQuery);
|
||||||
|
|
||||||
|
if (!parentItemTypeList.isEmpty()) {
|
||||||
|
ItemType parentItemType = parentItemTypeList.get(0);
|
||||||
|
itemType.setParentTypeId(parentItemType.getItemTypeId());
|
||||||
|
|
||||||
|
// 提取父级分类ID
|
||||||
|
Long parentId = parentItemType.getParentTypeId();
|
||||||
|
|
||||||
|
// 循环,直至查出最顶层分类
|
||||||
|
while (parentId != null && parentId != 0) {
|
||||||
|
parentItemType = itemTypeService.selectItemTypeById(parentId);
|
||||||
|
if (parentItemType != null) {
|
||||||
|
// 更新父级 ID
|
||||||
|
parentId = parentItemType.getParentTypeId();
|
||||||
|
|
||||||
|
// 判断分类名称,设置对应的物料类型
|
||||||
|
if ("专用刀具".equals(parentItemType.getItemTypeName()) || "刀具".equals(parentItemType.getItemTypeName())) {
|
||||||
|
itemType.setItemOrProduct("BLAND");
|
||||||
|
break;
|
||||||
|
} else if (parentId == 0) {
|
||||||
|
itemType.setItemOrProduct("ITEM");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入数据
|
||||||
|
itemTypeService.insertItemType(itemType);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return "同步失败,原因:" + e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "1"; // 返回成功标识
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步计量单位数据
|
||||||
|
* @param unitListStr 计量单位列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String syncUnit(Spring unitListStr) {
|
||||||
|
// 使用 ObjectMapper 来处理 JSON
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析传入的 JSON 字符串
|
||||||
|
String jsonList = objectMapper.readTree(unitListStr.toString()).get("LIST").asText();
|
||||||
|
JsonNode jsonNode = objectMapper.readTree(jsonList);
|
||||||
|
|
||||||
|
for (JsonNode node : jsonNode) {
|
||||||
|
JsonNode jsonNode1 = objectMapper.readTree(node.get("DIC_D_UNIT").asText());
|
||||||
|
if (jsonNode1 != null) {
|
||||||
|
MdUnitMeasure mdUnitMeasure = new MdUnitMeasure();
|
||||||
|
mdUnitMeasure.setMeasureCode(jsonNode1.get("CODE").asText());
|
||||||
|
mdUnitMeasure.setMeasureName(jsonNode1.get("NAME").asText());
|
||||||
|
mdUnitMeasureService.insertMdUnitMeasure(mdUnitMeasure);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return "同步失败,原因:" + e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "1"; // 返回成功标识
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user