【实时库存】用友数据优化

dev
siontion 2 months ago
parent 8b1409a70e
commit f9c2e79579

@ -39,9 +39,12 @@ public class QueryBomReqVO extends AbstractChanjetContent {
private String Code;
private String Name;
private String CodeEnd_Child;
private Boolean Disabled;
public QueryBomDTO(String code) {
public QueryBomDTO(String code,Boolean disabled) {
Code = code;
Disabled = disabled;
}
public QueryBomDTO(String code,String codeEnd_Child) {

@ -1066,7 +1066,7 @@ public class ChanjetManager {
// 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口
if(getSystemParameters()) {
CommonResult<List<QueryBomResVO>> result =
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode)), QueryBomResVO.class);
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode,false)), QueryBomResVO.class);
if (!result.isSuccess()) {
throw exception(CALL_API_ERROR);
}

@ -198,23 +198,47 @@ public class ChanjetSchedule {
List<TplusLastestBomDO> insertList = BeanUtils.toBean(bomMaterialVOS, TplusLastestBomDO.class);
List<TplusLastestBomDO> newList = new ArrayList<>();
List<TplusLastestBomDO> oldList = new ArrayList<>();
List<ProcedureDO> procedureDOS = procedureMapper.selectList(new LambdaUpdateWrapper<ProcedureDO>(){{
eq(ProcedureDO::getStatus,1);
}});
insertList.forEach(xo -> {
//
TplusLastestBomDO existTplusLastestBomDO = tplusLastestBomMapper.selectOne(new LambdaUpdateWrapper<TplusLastestBomDO>(){{
eq(TplusLastestBomDO::getTopCode,xo.getTopCode())
.eq(TplusLastestBomDO::getProjectSubCode,xo.getProjectSubCode()).last("limit 1");
}});
if(procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).count()>0){
ProcedureDO procedureDO = procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).collect(Collectors.toList()).get(0);
ProcedureDO procedureDO = procedureDOS.stream().filter(po->po.getName().equals(xo.getProcedureName()) && po.getCode().equals(xo.getProcedureCode())).collect(Collectors.toList()).get(0);
if(procedureDO!=null){
xo.setProcedureId(procedureDO.getId()).setProcedureCode(procedureDO.getCode()).setProcedureName(procedureDO.getName());
if(existTplusLastestBomDO!=null) {
existTplusLastestBomDO.setProcedureId(procedureDO.getId()).setProcedureCode(procedureDO.getCode()).setProcedureName(procedureDO.getName());
}
}
xo.setId(null).setTopCode(so.getProjectSubCode()).setCreator("2").setUpdater("2");
xo.setTopCode(so.getProjectSubCode()).setCreator("2").setUpdater("2");
if(existTplusLastestBomDO==null) {
xo.setId(null);
newList.add(xo);
}else{
oldList.add(existTplusLastestBomDO);
}
});
if(CollUtil.isNotEmpty(insertList)) {
tplusLastestBomMapper.delete(TplusLastestBomDO::getTopCode, so.getProjectSubCode());
tplusLastestBomMapper.insertBatch(insertList);
if(CollUtil.isNotEmpty(newList)) {
// tplusLastestBomMapper.delete(TplusLastestBomDO::getTopCode, so.getProjectSubCode());
tplusLastestBomMapper.insertBatch(newList);
}
if(CollUtil.isNotEmpty(oldList)) {
tplusLastestBomMapper.updateBatch(oldList);
}
}
codes.add(so.getProjectSubCode());
@ -236,13 +260,13 @@ public class ChanjetSchedule {
// 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口
if(getSystemParameters()) {
CommonResult<List<QueryBomResVO>> result =
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode)), QueryBomResVO.class);
chanjetSpi.invokeRetList(QUERY_BOM, new QueryBomReqVO(new QueryBomReqVO.QueryBomDTO(materialCode,false)), QueryBomResVO.class);
if (!result.isSuccess()) {
throw exception(CALL_API_ERROR);
}
if (CollUtil.isNotEmpty(result.getData())) {
QueryBomResVO topLayer = result.getData().get(0);
QueryBomResVO topLayer = result.getData().stream().filter(ko->!ko.isDisabled()).collect(Collectors.toList()).get(0);
// QueryBomResVO topLayer = result.getData().get(0);
// 判断物料编码+物料名称+规格+颜色是否存在
for (Integer idx = 0; idx < topLayer.getDynamicPropertyValues().size(); idx++) {
if (topLayer.getDynamicPropertyKeys().get(idx).equals("freeItem0".toLowerCase())
@ -347,7 +371,7 @@ public class ChanjetSchedule {
.setStockQuantity(new BigDecimal(stockData.getAvailableQuantity()))
.setUnit(stockData.getUnitName())
.setProcedureName(dto.getProcess()==null?null:dto.getProcess().getName())
.setProcedureName(dto.getProcess()==null?null:dto.getProcess().getCode());
.setProcedureCode(dto.getProcess()==null?null:dto.getProcess().getCode());
resultData.add(bomMaterialVO);

@ -59,7 +59,7 @@ spring:
redis:
host: 222.71.165.188 # 地址
port: 6379 # 端口
database: 4 # 数据库索引
database: 3 # 数据库索引
password: 'qweasd,.123' # 密码,建议生产环境开启
--- #################### 定时任务相关配置 ####################
@ -221,7 +221,7 @@ chanjet:
gatewayUrl: https://openapi.chanjet.com #开放平台网关地址
connectTimeout: 3000 #连接超时时间单位ms
readTimeout: 15000 #读取超时时间单位ms
appKey: AQT9tceb #需要填写在开放平台申请的appKey
appSecret: 30AD3E759DD15FFB1687C1B22BECF25A #需要填写在开放平台申请的appSecret
appKey: 4fwVPgzS #需要填写在开放平台申请的appKey
appSecret: 10A472641CDA5FB08ABA7178B190C7C5 #需要填写在开放平台申请的appSecret
secret: 1234567890123456 #秘钥,用于解密,需要去开放平台自主填写,然后配置在此处
redirectUri: http://222.71.165.187:9021/admin-api/biz/chanjet/receiveCode #Oauth重定向地址需要去开放平台自主填写然后配置在此处
redirectUri: http://222.71.165.187:9031/admin-api/biz/chanjet/receiveCode #Oauth重定向地址需要去开放平台自主填写然后配置在此处
Loading…
Cancel
Save