add:物料同步
This commit is contained in:
@@ -3,6 +3,7 @@ package org.nl.wms.basedata_manage.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.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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.MdPbMeasureunit;
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdMeMaterialbaseMapper;
|
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.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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -47,6 +50,9 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
|||||||
@Autowired
|
@Autowired
|
||||||
private WmsToErpService wmsToErpService;
|
private WmsToErpService wmsToErpService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ErpSyncService erpSyncService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wms调用erp服务
|
* wms调用erp服务
|
||||||
*/
|
*/
|
||||||
@@ -122,31 +128,36 @@ public class MdMeMaterialbaseServiceImpl extends ServiceImpl<MdMeMaterialbaseMap
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public void materialSync(JSONObject whereJson) {
|
public void materialSync(JSONObject whereJson) {
|
||||||
JSONObject resultJson = wmsToErpService.materialSync(whereJson);
|
List<ErpMaterial> list = erpSyncService.list();
|
||||||
List<JSONObject> dataList = resultJson.getJSONArray("data").toJavaList(JSONObject.class);
|
|
||||||
// 查询是否有相同物料
|
// 查询是否有相同物料
|
||||||
List<MdMeMaterialbase> likeMaterList = this.list(
|
List<MdMeMaterialbase> likeMaterList = this.list(
|
||||||
new QueryWrapper<MdMeMaterialbase>().lambda()
|
new QueryWrapper<MdMeMaterialbase>().lambda()
|
||||||
.in(MdMeMaterialbase::getMaterial_code, dataList.stream()
|
.in(MdMeMaterialbase::getMaterial_code, list.stream()
|
||||||
.map(row -> row.getString("mater_code"))
|
.map(ErpMaterial::getSkuCode)
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
// 需插入的物料集合
|
// 需插入的物料集合
|
||||||
List<MdMeMaterialbase> materDaoList = new ArrayList<>();
|
List<MdMeMaterialbase> materDaoList = new ArrayList<>();
|
||||||
for (JSONObject json : dataList) {
|
for (ErpMaterial json : list) {
|
||||||
boolean is_like = likeMaterList.stream()
|
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) {
|
if (is_like) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 组织数据
|
// 组织数据
|
||||||
MdMeMaterialbase dao = new MdMeMaterialbase();
|
MdMeMaterialbase dao = new MdMeMaterialbase();
|
||||||
dao.setMaterial_id(IdUtil.getStringId());
|
dao.setMaterial_id(IdUtil.getStringId());
|
||||||
dao.setMaterial_code(json.getString("mater_code"));
|
dao.setMaterial_code(json.getSkuCode());
|
||||||
dao.setMaterial_name(json.getString("mater_name"));
|
dao.setMaterial_name(json.getSkuName());
|
||||||
dao.setMaterial_spec(json.getString("spec_dtl"));
|
if (!StrUtil.isEmptyIfStr(json.getModel()) && json.getModel().length() > 100){
|
||||||
dao.setNet_weight(json.getBigDecimal("mater_height"));
|
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_id(SecurityUtils.getCurrentUserId());
|
||||||
dao.setCreate_name(SecurityUtils.getCurrentNickName());
|
dao.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
dao.setCreate_time(DateUtil.now());
|
dao.setCreate_time(DateUtil.now());
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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> {
|
||||||
|
}
|
||||||
@@ -31,6 +31,16 @@
|
|||||||
>
|
>
|
||||||
导入
|
导入
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-refresh"
|
||||||
|
size="mini"
|
||||||
|
@click="materialSync"
|
||||||
|
>
|
||||||
|
同步
|
||||||
|
</el-button>
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
|
|||||||
@@ -300,7 +300,8 @@ export default {
|
|||||||
'103': '采购入库',
|
'103': '采购入库',
|
||||||
'0009': '手工入库',
|
'0009': '手工入库',
|
||||||
'1001': '销售出库',
|
'1001': '销售出库',
|
||||||
'1004': '库存调拨',
|
'0006': '生产领料',
|
||||||
|
'0007': '库存调拨',
|
||||||
'107': '调拨入库',
|
'107': '调拨入库',
|
||||||
'109': '其他入库',
|
'109': '其他入库',
|
||||||
'1005': '生产出库',
|
'1005': '生产出库',
|
||||||
|
|||||||
@@ -176,6 +176,7 @@ async function onPutaway() {
|
|||||||
order_no: item.order_no,
|
order_no: item.order_no,
|
||||||
sku_code: item.sku_code,
|
sku_code: item.sku_code,
|
||||||
batch_no: item.batch_no,
|
batch_no: item.batch_no,
|
||||||
|
item_no: item.item_no,
|
||||||
qty: item.qty,
|
qty: item.qty,
|
||||||
}))
|
}))
|
||||||
submitting.value = true
|
submitting.value = true
|
||||||
|
|||||||
Reference in New Issue
Block a user