Browse Source

feat: 出库导入费用

master
李永德 5 days ago
parent
commit
21d19ca12c
  1. 162
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdCsTransportationBase.java
  2. 1
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdMeMaterialBase.java
  3. 11
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdCsTransportationBaseMapper.java
  4. 4
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdCsTransportationBaseMapper.xml
  5. 11
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/IMdCsTransportationBaseService.java
  6. 17
      lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MdCsTransportationBaseServiceImpl.java
  7. 9
      lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java
  8. 8
      lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java
  9. 82
      lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java

162
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdCsTransportationBase.java

@ -0,0 +1,162 @@
package org.nl.b_lms.storage_manage.md.dao;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 运输公司基本信息表
* @Author: lyd
* @Date: 2025/7/3
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("MD_CS_TransportationBase")
public class MdCsTransportationBase {
/** 物流公司标识 */
@TableId
private String cust_id;
/**
* 物流公司编码
*/
private String cust_code;
/**
* 物流公司名称
*/
private String cust_name;
/**
* 物流公司简称
*/
private String cust_simple_name;
/**
* 国家
*/
private String country;
/**
* 省份
*/
private String state;
/**
* 城市
*/
private String city;
/**
* 传真
*/
private String faxnumber;
/**
* 邮箱
*/
private String webSite;
/**
* 法人代表
*/
private String jurid_name;
/**
* 税务登记号
*/
private String tax_no;
/**
* 工商注册号
*/
private String register_no;
/**
* 经营许可证号
*/
private String manage_lice_no;
/**
* 营业执照
*/
private String busi_char_name;
/**
* 行政区划
*/
private String area_id;
/**
* 邮政编码
*/
private String zip_code;
/**
* 公司电话
*/
private String corp_tele_no;
/**
* 公司地址
*/
private String corp_address;
/**
* 创建人
*/
private String create_id;
/**
* 创建人姓名
*/
private String create_name;
/**
* 创建时间
*/
private String create_time;
/**
* 修改人
*/
private String update_optid;
/**
* 修改人姓名
*/
private String update_optname;
/**
* 修改时间
*/
private String update_time;
/**
* 启用时间
*/
private String is_used_time;
/**
* 是否启用
*/
private String is_used;
/**
* 是否删除
*/
private String is_delete;
/**
* 外部标识
*/
private String ext_id;
/**
* 备注
*/
private String remark;
}

1
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/MdMeMaterialBase.java

@ -18,7 +18,6 @@ import java.math.BigDecimal;
@Builder @Builder
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@TableName("md_me_materialbase") @TableName("md_me_materialbase")
public class MdMeMaterialBase implements Serializable { public class MdMeMaterialBase implements Serializable {
/** /**

11
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdCsTransportationBaseMapper.java

@ -0,0 +1,11 @@
package org.nl.b_lms.storage_manage.md.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.b_lms.storage_manage.md.dao.MdCsTransportationBase;
/**
* @Author: lyd
* @Date: 2025/7/3
*/
public interface MdCsTransportationBaseMapper extends BaseMapper<MdCsTransportationBase> {
}

4
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/dao/mapper/MdCsTransportationBaseMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.b_lms.storage_manage.md.dao.mapper.MdCsTransportationBaseMapper">
</mapper>

11
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/IMdCsTransportationBaseService.java

@ -0,0 +1,11 @@
package org.nl.b_lms.storage_manage.md.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.b_lms.storage_manage.md.dao.MdCsTransportationBase;
/**
* @Author: lyd
* @Date: 2025/7/3
*/
public interface IMdCsTransportationBaseService extends IService<MdCsTransportationBase> {
}

17
lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/md/service/impl/MdCsTransportationBaseServiceImpl.java

@ -0,0 +1,17 @@
package org.nl.b_lms.storage_manage.md.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.storage_manage.md.dao.MdCsTransportationBase;
import org.nl.b_lms.storage_manage.md.dao.mapper.MdCsTransportationBaseMapper;
import org.nl.b_lms.storage_manage.md.service.IMdCsTransportationBaseService;
import org.springframework.stereotype.Service;
/**
* @Author: lyd
* @Date: 2025/7/3
*/
@Slf4j
@Service
public class MdCsTransportationBaseServiceImpl extends ServiceImpl<MdCsTransportationBaseMapper, MdCsTransportationBase> implements IMdCsTransportationBaseService {
}

9
lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java

@ -1,5 +1,6 @@
package org.nl.wms.st.outbill.rest; package org.nl.wms.st.outbill.rest;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
@ -13,8 +14,10 @@ import org.nl.wms.st.outbill.service.dto.*;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
@ -130,4 +133,10 @@ public class CheckOutBillController {
checkOutBillService.outReturn(whereJson); checkOutBillService.outReturn(whereJson);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@PostMapping("/importExcel")
@SaIgnore
public ResponseEntity<Object> importExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
checkOutBillService.importExcel(file, request);
return new ResponseEntity<>(HttpStatus.OK);
}
} }

8
lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/CheckOutBillService.java

@ -9,7 +9,9 @@ import org.nl.wms.st.outbill.service.dto.*;
import org.nl.wms.st.outbill.service.vo.OutBillDtlVo; import org.nl.wms.st.outbill.service.vo.OutBillDtlVo;
import org.nl.wms.st.outbill.service.vo.OutBillTaskVo; import org.nl.wms.st.outbill.service.vo.OutBillTaskVo;
import org.nl.wms.st.outbill.service.vo.StockMaterialVo; import org.nl.wms.st.outbill.service.vo.StockMaterialVo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -81,4 +83,10 @@ public interface CheckOutBillService {
* @param whereJson * @param whereJson
*/ */
void outReturn(JSONObject whereJson); void outReturn(JSONObject whereJson);
/**
* 导入运费
* @param file 文件
* @param request 请求头
*/
void importExcel(MultipartFile file, HttpServletRequest request);
} }

82
lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java

@ -1,9 +1,14 @@
package org.nl.wms.st.outbill.service.impl; package org.nl.wms.st.outbill.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -11,7 +16,10 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdisService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService; import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvdtlService;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinv;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.StIvtIostorinvdtl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvMapper; import org.nl.b_lms.storage_manage.ios.service.iostorInv.dao.mapper.StIvtIostorinvMapper;
import org.nl.b_lms.storage_manage.md.dao.MdCsTransportationBase;
import org.nl.b_lms.storage_manage.md.service.IMdCsTransportationBaseService;
import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper; import org.nl.b_lms.storage_manage.st.dao.mapper.StIvtStructivtMapper;
import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService; import org.nl.b_lms.storage_manage.st.service.StIvtBsrealstorattrService;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
@ -28,9 +36,14 @@ import org.nl.wms.st.outbill.service.vo.StockMaterialVo;
import org.nl.wms.stat.service.enums.OutBillTypeEnum; import org.nl.wms.stat.service.enums.OutBillTypeEnum;
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.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
/** /**
@ -52,6 +65,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
private StIvtIostorinvMapper stIvtIostorinvMapper; private StIvtIostorinvMapper stIvtIostorinvMapper;
@Autowired @Autowired
private StIvtStructivtMapper stIvtStructivtMapper; private StIvtStructivtMapper stIvtStructivtMapper;
@Autowired
private IMdCsTransportationBaseService mdCsTransportationBaseService;
@Override @Override
public List<OutBillDtlVo> getOutBillDtl(OutBillDtlQueryParam param) { public List<OutBillDtlVo> getOutBillDtl(OutBillDtlQueryParam param) {
@ -229,6 +244,73 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
// bean.uploadMES(param); // bean.uploadMES(param);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void importExcel(MultipartFile file, HttpServletRequest request) {
// 1.获取上传文件输入流
InputStream inputStream = null;
try {
inputStream = file.getInputStream();
} catch (Exception e) {
e.printStackTrace();
}
// 查询所有物流公司
List<MdCsTransportationBase> tranList = mdCsTransportationBaseService.list(new LambdaQueryWrapper<MdCsTransportationBase>()
.eq(MdCsTransportationBase::getIs_delete, "0")
.eq(MdCsTransportationBase::getIs_used, "1"));
ExcelReader excelReader = ExcelUtil.getReader(inputStream);
List<List<Object>> read = excelReader.read(1, excelReader.getRowCount());
for (int i = 0; i < read.size(); i++) {
List list = read.get(i);
// 交货单
String vbeln = list.get(0).toString();
if (ObjectUtil.isEmpty(vbeln)) {
continue;
}
// 根据交货单找到主单据
List<JSONObject> jsonDtls = iostorinvdtlService.listObjs(new LambdaQueryWrapper<StIvtIostorinvdtl>().eq(StIvtIostorinvdtl::getVbeln, vbeln)
, dtl -> (JSONObject) JSON.toJSON(dtl));
if (jsonDtls.size() == 0) {
continue;
}
// 获取其中一个
JSONObject jsonDtl = jsonDtls.get(0);
StIvtIostorinv jsonMst = stIvtIostorinvService.getById(jsonDtl.getString("iostorinv_id"));
// 物流公司名称
String cust_name = list.get(1).toString();
// 匹配对应的物流公司
MdCsTransportationBase trans = tranList.stream()
.filter(row -> row.getCust_name().equals(cust_name))
.findFirst().orElse(null);
// 运单号
String order_number = list.get(2).toString();
// 车型
String car_type = list.get(3).toString();
// 其他费用
String other_freight = list.get(4).toString();
// 其他费用
String estimated_freight = list.get(5).toString();
// 更新主表
jsonMst.setTrans_code( ObjectUtil.isNotEmpty(trans) ? trans.getCust_code() : "" );
jsonMst.setOrder_number(order_number);
jsonMst.setCar_type(car_type);
jsonMst.setOther_freight(new BigDecimal(other_freight));
jsonMst.setEstimated_freight(new BigDecimal(estimated_freight));
stIvtIostorinvService.updateById(jsonMst);
}
}
private void doLikeOrInParam(OutManageParam paramMap) { private void doLikeOrInParam(OutManageParam paramMap) {
if (StrUtil.isNotEmpty(paramMap.getVbeln())){ if (StrUtil.isNotEmpty(paramMap.getVbeln())){
// 判断是否有空格 // 判断是否有空格

Loading…
Cancel
Save