Browse Source

add:erp下发出库单据

master
刘先源 1 week ago
parent
commit
a1c7893ad3
  1. 2
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java
  2. 14
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java
  3. 87
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java
  4. 22
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java
  5. 6
      wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml
  6. 6
      wms/nladmin-system/nlsso-server/src/main/resources/log/SendAcsTask.xml
  7. 1
      wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
  8. 2
      wms/nladmin-ui/README.md
  9. 2
      wms/nladmin-ui/src/i18n/langs/zh-CN.js
  10. 2
      wms/nladmin-ui/src/layout/components/Sidebar/Logo.vue

2
wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java

@ -90,7 +90,7 @@ public class BsrealStorattrServiceImpl extends ServiceImpl<BsrealStorattrMapper,
BsrealStorattr bsrealStorattr = bsrealStorattrMapper.selectOne(queryWrapper);
if (ObjectUtil.isEmpty(bsrealStorattr)) {
return null;
throw new BadRequestException("仓库编码为【"+code+"】不存在!");
}
return bsrealStorattr;

14
wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/ErpToWmsService.java

@ -28,13 +28,17 @@ public interface ErpToWmsService {
* 下发出库单据
* @param whereJson {
* stor_code仓库编码
* mater_code物料编码
* batch_no批次号可为空
* quantity数量
* unit_code计量单位
* unit_name计量单位名称
* inv_code单据号可为空
* task_type 业务类型可为空
* data : [
* {
* mater_code物料编码
* batch_no批次号可为空
* quantity数量
* unit_code计量单位
* unit_name计量单位名称
* }
* ]
* }
* @return ErpResponse
*/

87
wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/ErpToWmsServiceImpl.java

@ -1,13 +1,28 @@
package org.nl.wms.ext.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService;
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
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.MdPbStoragevehicleextMapper;
import org.nl.wms.ext.service.ErpToWmsService;
import org.nl.wms.ext.service.util.ErpResponse;
import org.nl.wms.warehouse_management.enums.IOSEnum;
import org.nl.wms.warehouse_management.service.IOutBillService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* ERP调用WMS 实现类
@ -20,12 +35,36 @@ import org.springframework.stereotype.Service;
@Slf4j
public class ErpToWmsServiceImpl implements ErpToWmsService {
/**
* 仓库实物表服务
*/
@Autowired
private IBsrealStorattrService iBsrealStorattrService;
/**
* 物料基础数据服务
*/
@Autowired
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
/**
* 计量单位服务
*/
@Autowired
private IMdPbMeasureunitService iMdPbMeasureunitService;
/**
* 载具扩展属性mapper
*/
@Autowired
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
/**
* 出库服务
*/
@Autowired
private IOutBillService iOutBillService;
@Override
public ErpResponse erpQueryIvt(JSONObject whereJson) {
log.info("erpQueryIvt查询物料接口输入参数为:-------------------" + whereJson.toString());
@ -37,7 +76,55 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
@Override
public ErpResponse sendTask(JSONObject whereJson) {
log.info("sendTask下发出库任务接口输入参数为:-------------------" + whereJson.toString());
// 组织主表数据
JSONObject jsonMst = new JSONObject();
jsonMst.put("biz_date", DateUtil.now());
jsonMst.put("bill_status", IOSEnum.BILL_STATUS.code("生成"));
jsonMst.put("source_id", whereJson.getString("inv_code"));
jsonMst.put("source_type", whereJson.getString("task_type"));
jsonMst.put("bill_type", whereJson.getString("task_type"));
jsonMst.put("user","erp");
// 查询仓库
BsrealStorattr storDao = iBsrealStorattrService.findByCode(whereJson.getString("stor_code"));
jsonMst.put("stor_id", storDao.getStor_id());
// 组织明细
List<JSONObject> dataList = whereJson.getJSONArray("data").toJavaList(JSONObject.class);
// 查询所有物料
List<MdMeMaterialbase> materDaoList = iMdMeMaterialbaseService.list(
new QueryWrapper<MdMeMaterialbase>().lambda()
.in(MdMeMaterialbase::getMaterial_code, dataList.stream()
.map(row -> row.getString("mater_code"))
.collect(Collectors.toList())
)
);
// 查询所有计量单位
List<MdPbMeasureunit> unitDaoList = iMdPbMeasureunitService.list(
new QueryWrapper<MdPbMeasureunit>().lambda()
.in(MdPbMeasureunit::getUnit_code, dataList.stream()
.map(row -> row.getString("unit_code"))
.collect(Collectors.toList()))
);
// 明细集合
JSONArray dtlArr = new JSONArray();
for (JSONObject json : dataList) {
JSONObject jsonDtl = new JSONObject();
MdMeMaterialbase materDao = materDaoList.stream()
.filter(row -> row.getMaterial_code().equals(json.getString("mater_code")))
.findFirst().orElse(null);
jsonDtl.put("material_id", materDao.getMaterial_id());
jsonDtl.put("pcsn", json.getString("batch_no"));
MdPbMeasureunit unitDao = unitDaoList.stream()
.filter(row -> row.getUnit_code().equals(json.getString("unit_code")))
.findFirst().orElse(null);
jsonDtl.put("qty_unit_id", unitDao.getMeasure_unit_id());
jsonDtl.put("qty_unit_name", unitDao.getUnit_name());
jsonDtl.put("qty", json.getString("quantity"));
dtlArr.add(jsonDtl);
}
jsonMst.put("tableData",dtlArr);
// 调用出库单新增服务
iOutBillService.insertDtl(jsonMst);
log.info("sendTask下发出库任务接口输出参数为:-------------------" + ErpResponse.requestOk().toString());
return ErpResponse.requestOk();

22
wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/OutBillServiceImpl.java

@ -165,11 +165,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
@Override
@Transactional(rollbackFor = Exception.class)
public String insertDtl(JSONObject map) {
// if(MapUtil.getStr(map,"bill_type").equals("1011")) {
// String iostorinv_id = inserdtlPic(map);
// return iostorinv_id ;
// }
//明细
JSONArray array = map.getJSONArray("tableData");
@ -178,13 +173,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
String nickName = SecurityUtils.getCurrentNickName();
String user = map.getString("user");
if (ObjectUtil.isNotEmpty(user)) {
if ("mes".equals(user)) {
if ("erp".equals(user)) {
currentUserId = "2";
nickName = "mes用户";
}
if ("sap".equals(user)) {
currentUserId = "3";
nickName = "sap用户";
nickName = "ERP用户";
}
}
String now = DateUtil.now();
@ -210,13 +201,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
map.put("update_time", now);
map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
map.put("is_upload", BaseDataEnum.IS_YES_NOT.code("否"));
if (ObjectUtil.isNotEmpty(user)) {
if (!"mes".equals(user) || "sap".equals(user)) {
Long deptId = SecurityUtils.getDeptId();
map.put("sysdeptid", deptId);
map.put("syscompanyid", deptId);
}
}
// 主表重量
double qty = 0.0;
// 明细数
@ -305,7 +289,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
// 根据物料和批次号查询库存可用
BigDecimal canuseSum = mdPbStoragevehicleextMapper.queryCanuseSum(pcsn,material_id);
if (canuseSum.doubleValue()<unassign_qty){
if (ObjectUtil.isEmpty(canuseSum) || canuseSum.doubleValue()<unassign_qty){
throw new BadRequestException("物料编号:"+ dtl.getMaterial_code() +"出库分配数量不满足");
}

6
wms/nladmin-system/nlsso-server/src/main/resources/log/ErpToWms.xml

@ -3,10 +3,10 @@
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<property name="LOG_HOME" value="${logPath}"/>
<!-- 按照每天生成日志文件 -->
<appender name="FILE_SENDTASK" class="ch.qos.logback.core.rolling.RollingFileAppender">
<appender name="FILE_ERPTOWMS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/SendAcsTask/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<FileNamePattern>${LOG_HOME}/ErpToWms/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
@ -23,6 +23,6 @@
</appender>
<!-- 打印sql -->
<logger name="org.nl.wms.ext.service.impl.ErpToWmsServiceImpl" level="info" additivity="false">
<appender-ref ref="FILE_SENDTASK"/>
<appender-ref ref="FILE_ERPTOWMS"/>
</logger>
</included>

6
wms/nladmin-system/nlsso-server/src/main/resources/log/SendAcsTask.xml

@ -3,10 +3,10 @@
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<property name="LOG_HOME" value="${logPath}"/>
<!-- 按照每天生成日志文件 -->
<appender name="FILE_ERPTOWMS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<appender name="FILE_SENDTASK" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/ErpToWms/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<FileNamePattern>${LOG_HOME}/SendAcsTask/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
@ -23,6 +23,6 @@
</appender>
<!-- 打印sql -->
<logger name="org.nl.wms.ext.util.AcsUtil" level="info" additivity="false">
<appender-ref ref="FILE_ERPTOWMS"/>
<appender-ref ref="FILE_SENDTASK"/>
</logger>
</included>

1
wms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml

@ -17,6 +17,7 @@ https://juejin.cn/post/6844903775631572999
<!--引入默认的一些设置-->
<include resource="log/WmsToErp.xml"/>
<include resource="log/ErpToWms.xml"/>
<include resource="log/SendAcsTask.xml"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--withJansi 参数改为true-->

2
wms/nladmin-ui/README.md

@ -1,3 +1,3 @@
# 新生北安系统
# 北安新生WMS系统
/api/sysMenu/build?systemType=1

2
wms/nladmin-ui/src/i18n/langs/zh-CN.js

@ -2,7 +2,7 @@ export default {
'lang': 'zh',
// 平台
'platform': {
'title': '新生北安系统',
'title': '北安新生WMS系统',
'tip1': '用户名不能为空',
'tip2': '密码不能为空',
'tip3': '验证码不能为空'

2
wms/nladmin-ui/src/layout/components/Sidebar/Logo.vue

@ -26,7 +26,7 @@ export default {
},
data() {
return {
title: '新生北安系统',
title: '北安新生WMS系统',
logo: Logo,
title_param: 'platform'
}

Loading…
Cancel
Save