add:erp下发出库单据
This commit is contained in:
@@ -90,7 +90,7 @@ public class BsrealStorattrServiceImpl extends ServiceImpl<BsrealStorattrMapper,
|
|||||||
BsrealStorattr bsrealStorattr = bsrealStorattrMapper.selectOne(queryWrapper);
|
BsrealStorattr bsrealStorattr = bsrealStorattrMapper.selectOne(queryWrapper);
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(bsrealStorattr)) {
|
if (ObjectUtil.isEmpty(bsrealStorattr)) {
|
||||||
return null;
|
throw new BadRequestException("仓库编码为【"+code+"】不存在!");
|
||||||
}
|
}
|
||||||
|
|
||||||
return bsrealStorattr;
|
return bsrealStorattr;
|
||||||
|
|||||||
@@ -28,13 +28,17 @@ public interface ErpToWmsService {
|
|||||||
* 下发出库单据
|
* 下发出库单据
|
||||||
* @param whereJson: {
|
* @param whereJson: {
|
||||||
* stor_code:仓库编码
|
* stor_code:仓库编码
|
||||||
* mater_code:物料编码
|
|
||||||
* batch_no:批次号(可为空)
|
|
||||||
* quantity:数量
|
|
||||||
* unit_code:计量单位
|
|
||||||
* unit_name:计量单位名称
|
|
||||||
* inv_code:单据号(可为空)
|
* inv_code:单据号(可为空)
|
||||||
* task_type :业务类型(可为空)
|
* task_type :业务类型(可为空)
|
||||||
|
* data : [
|
||||||
|
* {
|
||||||
|
* mater_code:物料编码
|
||||||
|
* batch_no:批次号(可为空)
|
||||||
|
* quantity:数量
|
||||||
|
* unit_code:计量单位
|
||||||
|
* unit_name:计量单位名称
|
||||||
|
* }
|
||||||
|
* ]
|
||||||
* }
|
* }
|
||||||
* @return ErpResponse
|
* @return ErpResponse
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,13 +1,28 @@
|
|||||||
package org.nl.wms.ext.service.impl;
|
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.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||||
import org.nl.wms.ext.service.ErpToWmsService;
|
import org.nl.wms.ext.service.ErpToWmsService;
|
||||||
import org.nl.wms.ext.service.util.ErpResponse;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* ERP调用WMS 实现类
|
* ERP调用WMS 实现类
|
||||||
@@ -20,12 +35,36 @@ import org.springframework.stereotype.Service;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class ErpToWmsServiceImpl implements ErpToWmsService {
|
public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库实物表服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IBsrealStorattrService iBsrealStorattrService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料基础数据服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量单位服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 载具扩展属性mapper
|
* 载具扩展属性mapper
|
||||||
*/
|
*/
|
||||||
@Autowired
|
@Autowired
|
||||||
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
private MdPbStoragevehicleextMapper mdPbStoragevehicleextMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IOutBillService iOutBillService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ErpResponse erpQueryIvt(JSONObject whereJson) {
|
public ErpResponse erpQueryIvt(JSONObject whereJson) {
|
||||||
log.info("erpQueryIvt查询物料接口输入参数为:-------------------" + whereJson.toString());
|
log.info("erpQueryIvt查询物料接口输入参数为:-------------------" + whereJson.toString());
|
||||||
@@ -37,7 +76,55 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
|
|||||||
@Override
|
@Override
|
||||||
public ErpResponse sendTask(JSONObject whereJson) {
|
public ErpResponse sendTask(JSONObject whereJson) {
|
||||||
log.info("sendTask下发出库任务接口输入参数为:-------------------" + whereJson.toString());
|
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());
|
log.info("sendTask下发出库任务接口输出参数为:-------------------" + ErpResponse.requestOk().toString());
|
||||||
return ErpResponse.requestOk();
|
return ErpResponse.requestOk();
|
||||||
|
|||||||
@@ -165,11 +165,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String insertDtl(JSONObject map) {
|
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");
|
JSONArray array = map.getJSONArray("tableData");
|
||||||
|
|
||||||
@@ -178,13 +173,9 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
String nickName = SecurityUtils.getCurrentNickName();
|
String nickName = SecurityUtils.getCurrentNickName();
|
||||||
String user = map.getString("user");
|
String user = map.getString("user");
|
||||||
if (ObjectUtil.isNotEmpty(user)) {
|
if (ObjectUtil.isNotEmpty(user)) {
|
||||||
if ("mes".equals(user)) {
|
if ("erp".equals(user)) {
|
||||||
currentUserId = "2";
|
currentUserId = "2";
|
||||||
nickName = "mes用户";
|
nickName = "ERP用户";
|
||||||
}
|
|
||||||
if ("sap".equals(user)) {
|
|
||||||
currentUserId = "3";
|
|
||||||
nickName = "sap用户";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String now = DateUtil.now();
|
String now = DateUtil.now();
|
||||||
@@ -210,13 +201,6 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
map.put("update_time", now);
|
map.put("update_time", now);
|
||||||
map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
|
map.put("is_delete", BaseDataEnum.IS_YES_NOT.code("否"));
|
||||||
map.put("is_upload", 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;
|
double qty = 0.0;
|
||||||
// 明细数
|
// 明细数
|
||||||
@@ -305,7 +289,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper,IOStorInv> i
|
|||||||
// 根据物料和批次号查询库存可用
|
// 根据物料和批次号查询库存可用
|
||||||
BigDecimal canuseSum = mdPbStoragevehicleextMapper.queryCanuseSum(pcsn,material_id);
|
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() +"出库分配数量不满足");
|
throw new BadRequestException("物料编号:"+ dtl.getMaterial_code() +"出库分配数量不满足");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||||
<property name="LOG_HOME" value="${logPath}"/>
|
<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">
|
<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>
|
<maxHistory>15</maxHistory>
|
||||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||||
@@ -23,6 +23,6 @@
|
|||||||
</appender>
|
</appender>
|
||||||
<!-- 打印sql -->
|
<!-- 打印sql -->
|
||||||
<logger name="org.nl.wms.ext.service.impl.ErpToWmsServiceImpl" level="info" additivity="false">
|
<logger name="org.nl.wms.ext.service.impl.ErpToWmsServiceImpl" level="info" additivity="false">
|
||||||
<appender-ref ref="FILE_SENDTASK"/>
|
<appender-ref ref="FILE_ERPTOWMS"/>
|
||||||
</logger>
|
</logger>
|
||||||
</included>
|
</included>
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||||
<property name="LOG_HOME" value="${logPath}"/>
|
<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">
|
<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>
|
<maxHistory>15</maxHistory>
|
||||||
<!--单个日志最大容量 至少10MB才能看得出来-->
|
<!--单个日志最大容量 至少10MB才能看得出来-->
|
||||||
@@ -23,6 +23,6 @@
|
|||||||
</appender>
|
</appender>
|
||||||
<!-- 打印sql -->
|
<!-- 打印sql -->
|
||||||
<logger name="org.nl.wms.ext.util.AcsUtil" level="info" additivity="false">
|
<logger name="org.nl.wms.ext.util.AcsUtil" level="info" additivity="false">
|
||||||
<appender-ref ref="FILE_ERPTOWMS"/>
|
<appender-ref ref="FILE_SENDTASK"/>
|
||||||
</logger>
|
</logger>
|
||||||
</included>
|
</included>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
<!--引入默认的一些设置-->
|
<!--引入默认的一些设置-->
|
||||||
<include resource="log/WmsToErp.xml"/>
|
<include resource="log/WmsToErp.xml"/>
|
||||||
<include resource="log/ErpToWms.xml"/>
|
<include resource="log/ErpToWms.xml"/>
|
||||||
|
<include resource="log/SendAcsTask.xml"/>
|
||||||
|
|
||||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<!--withJansi 参数改为true-->
|
<!--withJansi 参数改为true-->
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# 新生北安系统
|
# 北安新生WMS系统
|
||||||
|
|
||||||
/api/sysMenu/build?systemType=1
|
/api/sysMenu/build?systemType=1
|
||||||
@@ -2,7 +2,7 @@ export default {
|
|||||||
'lang': 'zh',
|
'lang': 'zh',
|
||||||
// 平台
|
// 平台
|
||||||
'platform': {
|
'platform': {
|
||||||
'title': '新生北安系统',
|
'title': '北安新生WMS系统',
|
||||||
'tip1': '用户名不能为空',
|
'tip1': '用户名不能为空',
|
||||||
'tip2': '密码不能为空',
|
'tip2': '密码不能为空',
|
||||||
'tip3': '验证码不能为空'
|
'tip3': '验证码不能为空'
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: '新生北安系统',
|
title: '北安新生WMS系统',
|
||||||
logo: Logo,
|
logo: Logo,
|
||||||
title_param: 'platform'
|
title_param: 'platform'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user