add:物料同步

This commit is contained in:
zhaoyf
2026-07-07 19:33:49 +08:00
parent 56afafc2a0
commit e966d368bd
7 changed files with 84 additions and 11 deletions

View File

@@ -3,6 +3,7 @@ package org.nl.wms.basedata_manage.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -20,6 +21,8 @@ import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit;
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
import org.nl.wms.ext_manage.service.WmsToErpService;
import org.nl.wms.ext_manage.service.dto.ErpMaterial;
import org.nl.wms.ext_manage.service.impl.ErpSyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -47,6 +50,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
@Autowired
private WmsToErpService wmsToErpService;
@Autowired
private ErpSyncService erpSyncService;
/**
* wms调用erp服务
*/
@@ -122,31 +128,36 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
@Override
@Transactional
public void materialSync(JSONObject whereJson) {
JSONObject resultJson = wmsToErpService.materialSync(whereJson);
List<JSONObject> dataList = resultJson.getJSONArray("data").toJavaList(JSONObject.class);
List<ErpMaterial> list = erpSyncService.list();
// 查询是否有相同物料
List<MdMeMaterialbase> likeMaterList = this.list(
new QueryWrapper<MdMeMaterialbase>().lambda()
.in(MdMeMaterialbase::getMaterial_code, dataList.stream()
.map(row -> row.getString("mater_code"))
.in(MdMeMaterialbase::getMaterial_code, list.stream()
.map(ErpMaterial::getSkuCode)
.collect(Collectors.toList())
)
);
// 需插入的物料集合
List<MdMeMaterialbase> materDaoList = new ArrayList<>();
for (JSONObject json : dataList) {
for (ErpMaterial json : list) {
boolean is_like = likeMaterList.stream()
.anyMatch(row -> row.getMaterial_code().equals(json.getString("mater_code")));
.anyMatch(row -> row.getMaterial_code().equals(json.getSkuCode()));
if (is_like) {
continue;
}
// 组织数据
MdMeMaterialbase dao = new MdMeMaterialbase();
dao.setMaterial_id(IdUtil.getStringId());
dao.setMaterial_code(json.getString("mater_code"));
dao.setMaterial_name(json.getString("mater_name"));
dao.setMaterial_spec(json.getString("spec_dtl"));
dao.setNet_weight(json.getBigDecimal("mater_height"));
dao.setMaterial_code(json.getSkuCode());
dao.setMaterial_name(json.getSkuName());
if (!StrUtil.isEmptyIfStr(json.getModel()) && json.getModel().length() > 100){
dao.setMaterial_spec(json.getModel().substring(0, 100));
}else{
dao.setMaterial_spec(json.getModel());
}
dao.setQty_unit_id("1");
dao.setQty_unit_name("Pcs");
dao.setCreate_id(SecurityUtils.getCurrentUserId());
dao.setCreate_name(SecurityUtils.getCurrentNickName());
dao.setCreate_time(DateUtil.now());

View File

@@ -0,0 +1,18 @@
package org.nl.wms.ext_manage.service.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("V_UC_Item50")
public class ErpMaterial {
private String categoryCode;
private String categoryName;
private String skuCode;
private String skuName;
private String model;
private String unitCode;
private String unit;
private String needPick;
private String status;
}

View File

@@ -0,0 +1,23 @@
package org.nl.wms.ext_manage.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.nl.wms.ext_manage.service.dto.ErpMaterial;
import org.nl.wms.ext_manage.service.mapper.ErpSyncMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@DS("eas")
public class ErpSyncService {
@Autowired
private ErpSyncMapper erpSyncMapper;
@Transactional(propagation = Propagation.REQUIRES_NEW)
public List<ErpMaterial> list(){
return erpSyncMapper.selectList(null);
}
}

View File

@@ -0,0 +1,9 @@
package org.nl.wms.ext_manage.service.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.nl.wms.ext_manage.service.dto.ErpMaterial;
@Mapper
public interface ErpSyncMapper extends BaseMapper<ErpMaterial> {
}

View File

@@ -31,6 +31,16 @@
>
导入
</el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-refresh"
size="mini"
@click="materialSync"
>
同步
</el-button>
</crudOperation>
<!--表单组件-->
<el-dialog

View File

@@ -300,7 +300,8 @@ export default {
'103': '采购入库',
'0009': '手工入库',
'1001': '销售出库',
'1004': '库存调拨',
'0006': '生产领料',
'0007': '库存调拨',
'107': '调拨入库',
'109': '其他入库',
'1005': '生产出库',

View File

@@ -176,6 +176,7 @@ async function onPutaway() {
order_no: item.order_no,
sku_code: item.sku_code,
batch_no: item.batch_no,
item_no: item.item_no,
qty: item.qty,
}))
submitting.value = true