缓存线pad接口更新
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
|
|
||||||
package org.nl.wms.basedata.master.service.impl;
|
package org.nl.wms.basedata.master.service.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
@@ -14,8 +12,10 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.json.XML;
|
import org.json.XML;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.modules.common.utils.RedisUtils;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
import org.nl.modules.wql.util.WqlUtil;
|
import org.nl.modules.wql.util.WqlUtil;
|
||||||
@@ -24,12 +24,15 @@ import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
|||||||
import org.nl.wms.basedata.master.service.ClassstandardService;
|
import org.nl.wms.basedata.master.service.ClassstandardService;
|
||||||
import org.nl.wms.basedata.master.service.MaterialbaseService;
|
import org.nl.wms.basedata.master.service.MaterialbaseService;
|
||||||
import org.nl.wms.basedata.master.service.dto.MaterialbaseDto;
|
import org.nl.wms.basedata.master.service.dto.MaterialbaseDto;
|
||||||
|
import org.nl.wms.pda.dto.MaterialDto;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhouz
|
* @author zhouz
|
||||||
@@ -39,63 +42,59 @@ import java.util.*;
|
|||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MaterialbaseServiceImpl implements MaterialbaseService {
|
public class MaterialbaseServiceImpl implements MaterialbaseService{
|
||||||
private final ClassstandardService classstandardService;
|
private final ClassstandardService classstandardService;
|
||||||
//private final WmsToErpService wmsToErpService;
|
//private final WmsToErpService wmsToErpService;
|
||||||
|
private final RedisUtils redisUtils;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
public Map<String,Object> queryAll(Map whereJson, Pageable page) {
|
||||||
String search = MapUtil.getStr(whereJson, "search");
|
String search = MapUtil.getStr(whereJson, "search");
|
||||||
//物料限制的时候使用,初始化页面
|
//物料限制的时候使用,初始化页面
|
||||||
String class_idStr = MapUtil.getStr(whereJson, "class_idStr");
|
String class_idStr = MapUtil.getStr(whereJson, "class_idStr");
|
||||||
String material_type_id = MapUtil.getStr(whereJson, "material_type_id");
|
String material_type_id = MapUtil.getStr(whereJson, "material_type_id");
|
||||||
String class_code = MapUtil.getStr(whereJson, "class_code");
|
String class_code = MapUtil.getStr(whereJson, "class_code");
|
||||||
String ids = MapUtil.getStr(whereJson, "ids");
|
String ids = MapUtil.getStr(whereJson, "ids");
|
||||||
|
HashMap<String,String> map = new HashMap<>();
|
||||||
|
|
||||||
HashMap<String, String> map = new HashMap<>();
|
|
||||||
map.put("flag", "1");
|
map.put("flag", "1");
|
||||||
|
if(!StrUtil.isEmpty(search)) {
|
||||||
if (!StrUtil.isEmpty(search)) {
|
|
||||||
//处理转义字符
|
//处理转义字符
|
||||||
if (search.contains("\\")) {
|
if(search.contains("\\")) {
|
||||||
search = search.replace("\\", "\\\\\\");
|
search = search.replace("\\", "\\\\\\");
|
||||||
}
|
}
|
||||||
map.put("search", "%" + search + "%");
|
map.put("search", "%" + search + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
//处理物料当前节点的所有子节点
|
//处理物料当前节点的所有子节点
|
||||||
if (!StrUtil.isEmpty(material_type_id)) {
|
if(!StrUtil.isEmpty(material_type_id)) {
|
||||||
map.put("material_type_id", material_type_id);
|
map.put("material_type_id", material_type_id);
|
||||||
String classIds = classstandardService.getChildIdStr(material_type_id);
|
String classIds = classstandardService.getChildIdStr(material_type_id);
|
||||||
map.put("classIds", classIds);
|
map.put("classIds", classIds);
|
||||||
} else if (ObjectUtil.isNotEmpty(class_idStr)) {
|
}
|
||||||
|
else if(ObjectUtil.isNotEmpty(class_idStr)) {
|
||||||
String classIds = classstandardService.getAllChildIdStr(class_idStr);
|
String classIds = classstandardService.getAllChildIdStr(class_idStr);
|
||||||
map.put("classIds", classIds);
|
map.put("classIds", classIds);
|
||||||
}
|
}
|
||||||
|
if(!StrUtil.isEmpty(class_code)) {
|
||||||
if (!StrUtil.isEmpty(class_code)) {
|
|
||||||
map.put("class_code", class_code + "%");
|
map.put("class_code", class_code + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuffer where = new StringBuffer();
|
StringBuffer where = new StringBuffer();
|
||||||
if (StrUtil.isNotEmpty(ids)) {
|
if(StrUtil.isNotEmpty(ids)) {
|
||||||
ids = ids.replaceAll("\'", "");
|
ids = ids.replaceAll("\'", "");
|
||||||
String[] strs = ids.split(",");
|
String[] strs = ids.split(",");
|
||||||
where.append("(");
|
where.append("(");
|
||||||
for (int i = 0; i < strs.length; ) {
|
for(int i = 0; i < strs.length; ) {
|
||||||
where.append("class.class_code like '" + strs[i] + "%'");
|
where.append("class.class_code like '" + strs[i] + "%'");
|
||||||
i++;
|
i++;
|
||||||
if (i < strs.length) {
|
if(i < strs.length) {
|
||||||
where.append(" or ");
|
where.append(" or ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
where.append(")");
|
where.append(")");
|
||||||
map.put("idssql", where.toString());
|
map.put("idssql", where.toString());
|
||||||
} else {
|
}
|
||||||
|
else{
|
||||||
map.put("idssql", "1=1");
|
map.put("idssql", "1=1");
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject jo = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id");
|
JSONObject jo = WQL.getWO("QMD_ME_MATERIAL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "material_id");
|
||||||
return jo;
|
return jo;
|
||||||
}
|
}
|
||||||
@@ -121,11 +120,13 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
@Override
|
@Override
|
||||||
public MaterialbaseDto findByCode(String code) {
|
public MaterialbaseDto findByCode(String code) {
|
||||||
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
if (StrUtil.isNotEmpty(code) && code.contains("\\")) {
|
if(StrUtil.isNotEmpty(code) && code.contains("\\")) {
|
||||||
code = code.replace("\\", "\\\\");
|
code = code.replace("\\", "\\\\");
|
||||||
}
|
}
|
||||||
JSONObject json = wo.query("material_code ='" + code + "'").uniqueResult(0);
|
JSONObject json = wo.query("material_code ='" + code + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(json)) return null;
|
if(ObjectUtil.isEmpty(json)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
String unit_name = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id= '" + json.getString("base_unit_id") + "'").uniqueResult(0).getString("unit_name");
|
String unit_name = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id= '" + json.getString("base_unit_id") + "'").uniqueResult(0).getString("unit_name");
|
||||||
json.put("base_unit_name", unit_name);
|
json.put("base_unit_name", unit_name);
|
||||||
final MaterialbaseDto obj = json.toJavaObject(MaterialbaseDto.class);
|
final MaterialbaseDto obj = json.toJavaObject(MaterialbaseDto.class);
|
||||||
@@ -135,10 +136,9 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void create(MaterialbaseDto dto) {
|
public void create(MaterialbaseDto dto) {
|
||||||
|
ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll();
|
||||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
String nickName = SecurityUtils.getCurrentNickName();
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
|
|
||||||
|
|
||||||
dto.setMaterial_id(IdUtil.getSnowflake(1, 1).nextId());
|
dto.setMaterial_id(IdUtil.getSnowflake(1, 1).nextId());
|
||||||
dto.setCreate_id(currentUserId);
|
dto.setCreate_id(currentUserId);
|
||||||
dto.setCreate_name(nickName);
|
dto.setCreate_name(nickName);
|
||||||
@@ -149,37 +149,38 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||||
wo.insert(json);
|
wo.insert(json);
|
||||||
|
//子线程异步更新redis数据
|
||||||
|
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void update(MaterialbaseDto dto) {
|
public void update(MaterialbaseDto dto) {
|
||||||
|
ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll();
|
||||||
MaterialbaseDto entity = this.findById(dto.getMaterial_id());
|
MaterialbaseDto entity = this.findById(dto.getMaterial_id());
|
||||||
if (entity == null) {
|
if(entity == null) {
|
||||||
throw new BadRequestException("被删除或无权限,操作失败!");
|
throw new BadRequestException("被删除或无权限,操作失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
String nickName = SecurityUtils.getCurrentNickName();
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
|
|
||||||
|
|
||||||
dto.setUpdate_time(DateUtil.now());
|
dto.setUpdate_time(DateUtil.now());
|
||||||
dto.setUpdate_id(currentUserId);
|
dto.setUpdate_id(currentUserId);
|
||||||
dto.setUpdate_name(nickName);
|
dto.setUpdate_name(nickName);
|
||||||
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||||
wo.update(json);
|
wo.update(json);
|
||||||
|
//子线程异步更新redis数据
|
||||||
|
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteAll(Long[] ids) {
|
public void deleteAll(Long[] ids) {
|
||||||
|
ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll();
|
||||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
String nickName = SecurityUtils.getCurrentNickName();
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
|
|
||||||
|
|
||||||
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
for (Long material_id : ids) {
|
for(Long material_id : ids) {
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("material_id", String.valueOf(material_id));
|
param.put("material_id", String.valueOf(material_id));
|
||||||
param.put("is_delete", "1");
|
param.put("is_delete", "1");
|
||||||
@@ -188,24 +189,24 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
param.put("update_time", DateUtil.now());
|
param.put("update_time", DateUtil.now());
|
||||||
wo.update(param);
|
wo.update(param);
|
||||||
}
|
}
|
||||||
|
//子线程异步更新redis数据
|
||||||
|
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAlongMaterType(String materOpt_code, String material_id, String material_type_id) {
|
public boolean isAlongMaterType(String materOpt_code, String material_id, String material_type_id) {
|
||||||
if (ObjectUtil.isNotEmpty(material_id)) {
|
if(ObjectUtil.isNotEmpty(material_id)) {
|
||||||
Long long_mater = Long.parseLong(material_id);
|
Long long_mater = Long.parseLong(material_id);
|
||||||
material_type_id = this.findById(long_mater).getMaterial_type_id() + "";
|
material_type_id = this.findById(long_mater).getMaterial_type_id() + "";
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(material_type_id)) {
|
if(ObjectUtil.isEmpty(material_type_id)) {
|
||||||
throw new BadRequestException("物料类型不能为空!");
|
throw new BadRequestException("物料类型不能为空!");
|
||||||
}
|
}
|
||||||
String class_idStr = MaterOptTypeEnum.getObj(materOpt_code).getString("class_idStr");
|
String class_idStr = MaterOptTypeEnum.getObj(materOpt_code).getString("class_idStr");
|
||||||
|
|
||||||
Set<String> set = classstandardService.getAllChildIdSet(class_idStr);
|
Set<String> set = classstandardService.getAllChildIdSet(class_idStr);
|
||||||
if (ObjectUtil.isNotEmpty(set)) {
|
if(ObjectUtil.isNotEmpty(set)) {
|
||||||
return set.contains(material_type_id);
|
return set.contains(material_type_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,14 +218,14 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public JSONObject synchronize(JSONObject form) {
|
public JSONObject synchronize(JSONObject form) {
|
||||||
|
ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll();
|
||||||
log.info("导入方法开始");
|
log.info("导入方法开始");
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
|
|
||||||
String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/z_sd0002_send_mat_md/800/z_sd0002_send_mat_md/binding";
|
String url = "http://192.168.0.82:8000/sap/bc/srt/rfc/sap/z_sd0002_send_mat_md/800/z_sd0002_send_mat_md/binding";
|
||||||
String method = "ZSd0002SendMatMd";
|
String method = "ZSd0002SendMatMd";
|
||||||
String bill_code1 = form.getString("bill_code1");
|
String bill_code1 = form.getString("bill_code1");
|
||||||
String bill_code2 = form.getString("bill_code2");
|
String bill_code2 = form.getString("bill_code2");
|
||||||
HashMap<String, String> map = new HashMap<String, String>();
|
HashMap<String,String> map = new HashMap<String,String>();
|
||||||
map.put("MatnrFr", bill_code1);
|
map.put("MatnrFr", bill_code1);
|
||||||
map.put("MatnrTo", bill_code2);
|
map.put("MatnrTo", bill_code2);
|
||||||
//非必填字段
|
//非必填字段
|
||||||
@@ -237,20 +238,19 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
JSONObject Envelope = ret.getJSONObject("soap-env:Envelope");
|
JSONObject Envelope = ret.getJSONObject("soap-env:Envelope");
|
||||||
JSONObject Body = Envelope.getJSONObject("soap-env:Body");
|
JSONObject Body = Envelope.getJSONObject("soap-env:Body");
|
||||||
ZfmGetSoResponse = Body.getJSONObject("n0:ZSd0002SendMatMdResponse");
|
ZfmGetSoResponse = Body.getJSONObject("n0:ZSd0002SendMatMdResponse");
|
||||||
} catch (Exception e) {
|
}
|
||||||
|
catch(Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject TZtsalesorder = ZfmGetSoResponse.getJSONObject("Out");
|
JSONObject TZtsalesorder = ZfmGetSoResponse.getJSONObject("Out");
|
||||||
JSONObject TMara = TZtsalesorder.getJSONObject("TMara");
|
JSONObject TMara = TZtsalesorder.getJSONObject("TMara");
|
||||||
JSONArray rows = TMara.getJSONArray("item");
|
JSONArray rows = TMara.getJSONArray("item");
|
||||||
|
for(int i = 0; i < rows.size(); i++) {
|
||||||
for (int i = 0; i < rows.size(); i++) {
|
|
||||||
JSONObject row = rows.getJSONObject(i);
|
JSONObject row = rows.getJSONObject(i);
|
||||||
String Matnr = row.getString("Matnr").replaceAll("^(0+)", "");
|
String Matnr = row.getString("Matnr").replaceAll("^(0+)", "");
|
||||||
//查询是否存在该物料
|
//查询是否存在该物料
|
||||||
JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + Matnr + "'").uniqueResult(0);
|
JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + Matnr + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(mater_jo)) {
|
if(ObjectUtil.isEmpty(mater_jo)) {
|
||||||
mater_jo = new JSONObject();
|
mater_jo = new JSONObject();
|
||||||
mater_jo.put("material_id", IdUtil.getSnowflake(1, 1).nextId());
|
mater_jo.put("material_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||||
mater_jo.put("material_code", Matnr);
|
mater_jo.put("material_code", Matnr);
|
||||||
@@ -258,12 +258,12 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
mater_jo.put("material_model", row.getString("Mtart"));
|
mater_jo.put("material_model", row.getString("Mtart"));
|
||||||
String unit_code = row.getString("Meins");
|
String unit_code = row.getString("Meins");
|
||||||
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
|
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(unit_jo)) {
|
if(ObjectUtil.isEmpty(unit_jo)) {
|
||||||
throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code);
|
throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code);
|
||||||
}
|
}
|
||||||
mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id"));
|
mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id"));
|
||||||
JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0);
|
JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(class_jo)) {
|
if(ObjectUtil.isEmpty(class_jo)) {
|
||||||
throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart"));
|
throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart"));
|
||||||
}
|
}
|
||||||
mater_jo.put("material_type_id", class_jo.getString("class_id"));
|
mater_jo.put("material_type_id", class_jo.getString("class_id"));
|
||||||
@@ -277,18 +277,19 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
mater_jo.put("is_used", "1");
|
mater_jo.put("is_used", "1");
|
||||||
mater_jo.put("is_delete", "0");
|
mater_jo.put("is_delete", "0");
|
||||||
WQLObject.getWQLObject("md_me_materialbase").insert(mater_jo);
|
WQLObject.getWQLObject("md_me_materialbase").insert(mater_jo);
|
||||||
} else {
|
}
|
||||||
|
else{
|
||||||
mater_jo.put("material_code", Matnr);
|
mater_jo.put("material_code", Matnr);
|
||||||
mater_jo.put("material_name", row.getString("Maktx"));
|
mater_jo.put("material_name", row.getString("Maktx"));
|
||||||
mater_jo.put("material_model", row.getString("Mtart"));
|
mater_jo.put("material_model", row.getString("Mtart"));
|
||||||
String unit_code = row.getString("Meins");
|
String unit_code = row.getString("Meins");
|
||||||
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
|
JSONObject unit_jo = WQLObject.getWQLObject("md_pb_measureunit").query("unit_name = '" + unit_code + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(unit_jo)) {
|
if(ObjectUtil.isEmpty(unit_jo)) {
|
||||||
throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code);
|
throw new BadRequestException("未查询到该物料对应的单位信息:" + unit_code);
|
||||||
}
|
}
|
||||||
mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id"));
|
mater_jo.put("base_unit_id", unit_jo.getString("measure_unit_id"));
|
||||||
JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0);
|
JSONObject class_jo = WQLObject.getWQLObject("md_pb_classstandard").query("class_code = '" + row.getString("Mtart") + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(class_jo)) {
|
if(ObjectUtil.isEmpty(class_jo)) {
|
||||||
throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart"));
|
throw new BadRequestException("未查询到该物料对应的基础类别信息:" + row.getString("Mtart"));
|
||||||
}
|
}
|
||||||
mater_jo.put("material_type_id", class_jo.getString("class_id"));
|
mater_jo.put("material_type_id", class_jo.getString("class_id"));
|
||||||
@@ -304,6 +305,8 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
WQLObject.getWQLObject("md_me_materialbase").update(mater_jo);
|
WQLObject.getWQLObject("md_me_materialbase").update(mater_jo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//子线程异步更新redis数据
|
||||||
|
CompletableFuture<Void> updateMaterToRedis = CompletableFuture.runAsync(this::updateRedis, pool);
|
||||||
result.put("message", "导入成功!一共导入:" + rows.size() + "条数据!");
|
result.put("message", "导入成功!一共导入:" + rows.size() + "条数据!");
|
||||||
return new JSONObject();
|
return new JSONObject();
|
||||||
}
|
}
|
||||||
@@ -313,7 +316,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
WQLObject wo = WQLObject.getWQLObject("MD_PB_ClassStandard");
|
WQLObject wo = WQLObject.getWQLObject("MD_PB_ClassStandard");
|
||||||
JSONArray parentArray = wo.query("is_delete = '0' and parent_class_id = '" + parent_class_id + "'").getResultJSONArray(0);
|
JSONArray parentArray = wo.query("is_delete = '0' and parent_class_id = '" + parent_class_id + "'").getResultJSONArray(0);
|
||||||
JSONArray newParentArray = new JSONArray();
|
JSONArray newParentArray = new JSONArray();
|
||||||
for (int i = 0; i < parentArray.size(); i++) {
|
for(int i = 0; i < parentArray.size(); i++) {
|
||||||
JSONObject parentMap = parentArray.getJSONObject(i);
|
JSONObject parentMap = parentArray.getJSONObject(i);
|
||||||
JSONObject newParentMap = new JSONObject();
|
JSONObject newParentMap = new JSONObject();
|
||||||
JSONArray children = this.getProductSeries(parentMap.getString("class_id"));
|
JSONArray children = this.getProductSeries(parentMap.getString("class_id"));
|
||||||
@@ -325,4 +328,9 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
|
|||||||
return newParentArray;
|
return newParentArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateRedis() {
|
||||||
|
JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0);
|
||||||
|
List<MaterialDto> finalMaterialList = materialJsonArray.toJavaList(MaterialDto.class);
|
||||||
|
redisUtils.set("materialList", finalMaterialList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,27 +70,25 @@ public class CacheLineHandServiceImpl implements CacheLineHandService{
|
|||||||
return getMaterialDto(materialList, param);
|
return getMaterialDto(materialList, param);
|
||||||
}
|
}
|
||||||
//2.查reids
|
//2.查reids
|
||||||
// materialList = redisUtils.get("materialList", MaterialDto.class);
|
materialList = redisUtils.get("materialList", MaterialDto.class);
|
||||||
// if(null != materialList) {
|
if(null != materialList) {
|
||||||
// //设置本地缓存
|
//设置本地缓存
|
||||||
// cache.setLocalCache("materialList", materialList);
|
cache.setLocalCache("materialList", materialList);
|
||||||
// return getMaterialDto(materialList, param);
|
return getMaterialDto(materialList, param);
|
||||||
// }
|
}
|
||||||
//3.查db
|
//3.查db
|
||||||
JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0);
|
JSONArray materialJsonArray = WQL.getWO("PDA_QUERY").addParam("flag", "5").process().getResultJSONArray(0);
|
||||||
materialList = materialJsonArray.toJavaList(MaterialDto.class);
|
materialList = materialJsonArray.toJavaList(MaterialDto.class);
|
||||||
//缓存到redis
|
//缓存到redis
|
||||||
List<MaterialDto> finalMaterialList1 = materialList;
|
List<MaterialDto> finalMaterialList1 = materialList;
|
||||||
CompletableFuture<Void> f1 = CompletableFuture.runAsync(() -> redisUtils.set("materialList", finalMaterialList1, 3600, TimeUnit.SECONDS), pool);
|
CompletableFuture<Void> f1 = CompletableFuture.runAsync(() -> redisUtils.set("materialList", finalMaterialList1), pool);
|
||||||
//缓存到本地
|
//缓存到本地
|
||||||
List<MaterialDto> finalMaterialList = materialList;
|
List<MaterialDto> finalMaterialList = materialList;
|
||||||
CompletableFuture<Void> f2 = CompletableFuture.runAsync(() -> cache.setLocalCache("materialList", finalMaterialList), pool);
|
CompletableFuture<Void> f2 = CompletableFuture.runAsync(() -> cache.setLocalCache("materialList", finalMaterialList), pool);
|
||||||
f1.exceptionally((e) -> {
|
f1.exceptionally((e) -> {
|
||||||
log.error("物料信息缓存redis失败: {}", e.getMessage(), e);
|
|
||||||
throw new BadRequestException("物料信息缓存redis失败");
|
throw new BadRequestException("物料信息缓存redis失败");
|
||||||
});
|
});
|
||||||
f2.exceptionally((e) -> {
|
f2.exceptionally((e) -> {
|
||||||
log.error("物料信息缓存本地失败: {}", e.getMessage(), e);
|
|
||||||
throw new BadRequestException("物料信息缓存本地失败");
|
throw new BadRequestException("物料信息缓存本地失败");
|
||||||
});
|
});
|
||||||
return materialList;
|
return materialList;
|
||||||
|
|||||||
Reference in New Issue
Block a user