设备模块SAP同步功能添加

master
Yangwl 6 days ago
parent 99f7b7d1e8
commit d6b614f06d

@ -150,6 +150,8 @@ public interface RemoteSapService {
public R sapProductOutboundCostTW(@RequestBody(required = false) List<Map> mapList) ;
@PostMapping("/sap/ObtainSapInventory")
public R ObtainSapInventory(@RequestBody(required = false) SapZmesGetMchb sapZmesGetMchb);
@PostMapping("/sap/sapZmesAnlaGet")
public R sapZmesAnlaGet(@RequestBody(required = false) Map paramMap);
}

@ -183,6 +183,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory<RemoteSapServic
return R.fail("sap库存同步定时任务失败" + throwable.getMessage());
}
@Override
public R sapZmesAnlaGet(Map paramMap) {
return R.fail("sap库存同步定时任务失败" + throwable.getMessage());
}
};
}
}

@ -19,10 +19,7 @@ import org.springframework.stereotype.Service;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
@Component
@Service
@ -52,6 +49,10 @@ public class SapDeviceServiceImpl implements SapDeviceService {
jCoParameterList.setValue("P_SERNR", paramMap.get("P_SERNR"));
func.execute(dest);//执行调用函数
JCoTable maraTable = func.getTableParameterList().getTable("L_ANLA");
Map resultMap=new HashMap();
if (maraTable.getNumRows()==0){
return R.fail("此设备在SAP系统不存在");
}
for (int i = 0; i < maraTable.getNumRows(); i++) {
maraTable.setRow(i);
String BUKRS = maraTable.getString("BUKRS");
@ -60,9 +61,15 @@ public class SapDeviceServiceImpl implements SapDeviceService {
String TXT50 = maraTable.getString("TXT50");
String SERNR = maraTable.getString("SERNR");
String INVZU = maraTable.getString("INVZU");
resultMap.put("BUKRS",BUKRS);
resultMap.put("ANLN1",ANLN1);
resultMap.put("ANLN2",ANLN2);
resultMap.put("TXT50",TXT50);
resultMap.put("SERNR",SERNR);
System.out.println("公司代码"+BUKRS+"主资产号"+ANLN1+"资产次级编号"+ANLN2+"资产描述"+TXT50+"序列号"+SERNR+"补充库存说明"+INVZU);
}
return R.ok();
return R.ok(resultMap);
} catch (Exception e) {
log.error(e.getMessage());

@ -158,6 +158,9 @@ public class SapItemSyncImpl implements SapItemSyncService {
// String MVGR5_NM = maraTable.getString("MVGR5_NM");//批次最大数量占用
String LAEDA = maraTable.getString("LAEDA");
String ERSDA = maraTable.getString("LAEDA");
String ZLONG = maraTable.getString("ZLONG");
String ZWIDE = maraTable.getString("ZWIDE");
String ZHIGH = maraTable.getString("ZHIGH");
log.info(i+"物料基础数据同步数据输出----" +
"工厂:" +WERKS+
"物料号:" + MATNR +
@ -172,6 +175,9 @@ public class SapItemSyncImpl implements SapItemSyncService {
"体积:" + VOLUM +
"体积单位:" + VOLEH +
"基本计量单位:" + MEINS +
"长:" + ZLONG +
"宽:" + ZWIDE +
"高:" + ZHIGH +
"帐面库存单位的可选计量单位 " + MEINH +
"基本计量单位转换分子:" + UMREZ +
"转换为基本计量单位的分母:" + UMREN +
@ -207,8 +213,8 @@ public class SapItemSyncImpl implements SapItemSyncService {
baseProduct.setUpdateBy(SecurityUtils.getUsername());
sapBaseProductList.add(baseProduct);
}
return R.ok(this.importProducts(sapBaseProductList,sapItemQuery.getWerks()));
//return R.ok(this.importProducts(sapBaseProductList,sapItemQuery.getWerks()));
return R.ok();
} catch (Exception e) {
return R.fail(e.getMessage());
}

@ -77,6 +77,8 @@ public class BaseEquipmentController extends BaseController {
util.exportExcel(response, list, "设备管理数据");
}
/**
*
*/
@ -110,6 +112,16 @@ public class BaseEquipmentController extends BaseController {
return toAjax(baseEquipmentService.updateBaseEquipment(baseEquipment));
}
/**
* SAP
*/
@RequiresPermissions("wms:equipment:sap")
@Log(title = "设备信息SAP信息同步", businessType = BusinessType.SAP)
@GetMapping(value = "/sapSync/{equipmentId}")
public AjaxResult sapSync(@PathVariable("equipmentId") Long equipmentId) {
return baseEquipmentService.sapSyncBaseEquipment(equipmentId);
}
/**
*
*/

@ -95,4 +95,6 @@ public interface IBaseEquipmentService {
List<BaseEquipment> selectEquipmentListByCategory(BaseEquipment baseEquipment);
List<BaseEquipment> getEquipmentTypeDeptList(BaseEquipment baseEquipment);
AjaxResult sapSyncBaseEquipment(Long equipmentId);
}

@ -1,10 +1,14 @@
package com.op.wms.service.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.nacos.shaded.com.google.common.reflect.TypeToken;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.alibaba.nacos.shaded.com.google.gson.JsonSyntaxException;
import com.op.common.core.constant.Constants;
import com.op.common.core.domain.R;
import com.op.system.api.RemoteSapService;
import com.op.wms.mapper.BaseTeamUserMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -31,6 +35,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import static com.op.common.core.web.domain.AjaxResult.error;
import static com.op.common.core.web.domain.AjaxResult.success;
@ -48,7 +53,8 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService {
@Autowired
private BaseTeamUserMapper baseTeamUserMapper;
@Autowired
private RemoteSapService remoteSapService;
/**
*
*
@ -633,4 +639,58 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService {
public List<BaseEquipment> getEquipmentTypeDeptList(BaseEquipment baseEquipment) {
return baseEquipmentMapper.getEquipmentTypeDeptList(baseEquipment);
}
@Override
@DS("#header.poolName")
public AjaxResult sapSyncBaseEquipment(Long equipmentId) {
/**查询设备信息*/
BaseEquipment baseEquipment = baseEquipmentMapper.selectBaseEquipmentByEquipmentId(equipmentId);
Map P_SERNR=new HashMap<>();
P_SERNR.put("P_SERNR",baseEquipment.getEquipmentCode());
R r = remoteSapService.sapZmesAnlaGet(P_SERNR);
if (Constants.SUCCESS.equals(r.getCode())) {
Object data = r.getData();
// 条件1data 不为空
if (data != null) {
Gson gson = new Gson();
try {
// 将 data 转换为 Map
Map<String, Object> map = gson.fromJson(
gson.toJson(data),
new TypeToken<Map<String, Object>>(){}.getType()
);
// 条件2map 不为空且包含 ANLN1 字段
if (map != null && map.containsKey("ANLN1")) {
Object anln1Obj = map.get("ANLN1");
// 条件3ANLN1 字段值不为空且可转为字符串
if (anln1Obj != null) {
String ANLN1 = anln1Obj.toString();
if (StringUtils.isNotEmpty(ANLN1)) {
baseEquipment.setFixedAssetCode(
ANLN1.substring(Math.max(0, ANLN1.length() - 6))
);
}
}
baseEquipmentMapper.updateBaseEquipment(baseEquipment);
}
} catch (JsonSyntaxException e) {
e.printStackTrace();
return AjaxResult.error("同步失败"+e.getMessage());
// 处理 JSON 转换异常
}
return AjaxResult.success("同步成功");
} else {
// data 为空时的处理(如日志警告)
System.out.println("data is null");
}
}else {
return AjaxResult.error(r.getMsg());
}
return AjaxResult.success("同步成功");
}
}

Loading…
Cancel
Save