add:erp下发出库单据
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() +"出库分配数量不满足");
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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-->
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# 新生北安系统
|
||||
# 北安新生WMS系统
|
||||
|
||||
/api/sysMenu/build?systemType=1
|
||||
@@ -2,7 +2,7 @@ export default {
|
||||
'lang': 'zh',
|
||||
// 平台
|
||||
'platform': {
|
||||
'title': '新生北安系统',
|
||||
'title': '北安新生WMS系统',
|
||||
'tip1': '用户名不能为空',
|
||||
'tip2': '密码不能为空',
|
||||
'tip3': '验证码不能为空'
|
||||
|
||||
@@ -26,7 +26,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '新生北安系统',
|
||||
title: '北安新生WMS系统',
|
||||
logo: Logo,
|
||||
title_param: 'platform'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user