erp单据同步wms单据

This commit is contained in:
lsymicc
2025-12-08 17:32:24 +08:00
parent 05d2c7bbbc
commit 4e79dcb95f
7 changed files with 125 additions and 21 deletions

View File

@@ -60,6 +60,6 @@ public class ToErpApiController {
@PostMapping("/qqq")
public AjaxResult qqq() {
ErpStockinParam p=new ErpStockinParam();
return toErpService.getStockinList(p);
return toErpService.getErpStockinList(p);
}
}

View File

@@ -6,6 +6,8 @@ import com.ruoyi.bas.BasCustomer.domain.BasCustomer;
import com.ruoyi.bas.BasProduct.domain.BasProduct;
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.ErpInStockin.domain.ErpInStockin;
import com.ruoyi.in.ErpInStockinDetail.domain.ErpInStockinDetail;
import java.util.Map;
@@ -32,5 +34,9 @@ public interface IToErpService {
AjaxResult receiveOutStockList();
AjaxResult getStockinList(ErpStockinParam erpStockinParam);
AjaxResult getErpStockinList(ErpStockinParam erpStockinParam);
void AddStockinByErpStockin(ErpInStockin erpInStockin);
void AddStockinDetailByErpStockinDetail(ErpInStockinDetail erpInStockinetail);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.api.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
@@ -23,6 +24,10 @@ import com.ruoyi.in.ErpInStockin.domain.ErpInStockin;
import com.ruoyi.in.ErpInStockin.service.IErpInStockinService;
import com.ruoyi.in.ErpInStockinDetail.domain.ErpInStockinDetail;
import com.ruoyi.in.ErpInStockinDetail.service.IErpInStockinDetailService;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.out.ErpOutStock.domain.ErpOutStock;
import com.ruoyi.out.OutStockMiddle.domain.OutStockMiddle;
import com.ruoyi.out.ErpOutStockDetail.domain.ErpOutStockDetail;
@@ -40,6 +45,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -71,12 +77,22 @@ public class ToErpServiceImpl implements IToErpService {
@Autowired
private IOutStockoutDetailService outStockoutDetailService;
//erp入库主单
@Autowired
private IErpInStockinService erpInStockinService;
//erp入库子单
@Autowired
private IErpInStockinDetailService erpInStockinDetailService;
//wms入库主单
@Autowired
private IInStockinService inStockinService;
//wms入库子单
@Autowired
private IInStockinDetailService inStockinDetailService;
@Autowired
private IBasJobIdService basJobIdService;
@@ -421,7 +437,7 @@ public class ToErpServiceImpl implements IToErpService {
* @param erpStockinParam
* @return
*/
public AjaxResult getStockinList(ErpStockinParam erpStockinParam){
public AjaxResult getErpStockinList(ErpStockinParam erpStockinParam){
erpStockinParam = new ErpStockinParam();
@@ -463,7 +479,9 @@ public class ToErpServiceImpl implements IToErpService {
erpInStockin.setSysIcusIInheritIdIidI413(Convert.toStr(list.get(16)));
erpInStockin.setSysIcusIInheritIdIidI414(Convert.toStr(list.get(17)));
erpInStockin.setSysIcusIInheritIdIidI415(Convert.toStr(list.get(18)));
erpInStockin.setStockinGuid(UUID.randomUUID().toString());
String id = "RK" + DateUtil.date().toString("yyyyMMdd") + erpInStockin.getKuin();
erpInStockin.setStockinGuid(id);
//校验单据是否已经在表中 - 新增/更新
if (ObjUtil.isNotNull(erpInStockinService.selectErpInStockinByKuin(erpInStockin.getKuin()))) {
@@ -472,6 +490,9 @@ public class ToErpServiceImpl implements IToErpService {
erpInStockinService.insertErpInStockin(erpInStockin);
}
//更新wms主单
AddStockinByErpStockin(erpInStockin);
//========================================================================================================================================
//根据主单【kuinlist】字段获取子单信息
@@ -493,17 +514,18 @@ public class ToErpServiceImpl implements IToErpService {
erpInStockinDetail.setWarehousePositionID(0L);//货位
erpInStockinDetail.setKu(0L);//库区
erpInStockinDetail.setPh(Convert.toStr(details.get(17)));//批号
erpInStockinDetail.setPh(Convert.toStr(details.get(18)));//序列号
erpInStockinDetail.setPh(Convert.toStr(details.get(19)));//生产日期
erpInStockinDetail.setPh(Convert.toStr(details.get(20)));//有效日期
erpInStockinDetail.setPh(Convert.toStr(details.get(21)));//到货日期
erpInStockinDetail.setPh(Convert.toStr(details.get(29)));//装卸工
erpInStockinDetail.setXlh(Convert.toStr(details.get(18)));//序列号
erpInStockinDetail.setDatesc(Convert.toStr(details.get(19)));//生产日期
erpInStockinDetail.setDateyx(Convert.toStr(details.get(20)));//有效日期
erpInStockinDetail.setDate2(Convert.toStr(details.get(21)));//到货日期
erpInStockinDetail.setSysIcusIInheritIdIidI1(Convert.toStr(details.get(29)));//装卸工
erpInStockinDetail.setSpare1(Convert.toStr(details.get(1)));//产品名称 - product_name
erpInStockinDetail.setSpare2(Convert.toStr(details.get(2)));//产品型号 - product_id
//关联主单
erpInStockinDetail.setKuin(erpInStockin.getKuin());//入库id
erpInStockinDetail.setRkbh(erpInStockin.getRkbh());//入库编号
erpInStockinDetail.setSpare3(erpInStockin.getStockinGuid());//入库单guid
//校验数据是否已经在表中 - 新增/更新
if (ObjUtil.isNotNull(erpInStockinDetailService.selectErpInStockinDetailById(erpInStockinDetail.getId()))) {
@@ -511,6 +533,9 @@ public class ToErpServiceImpl implements IToErpService {
}else{
erpInStockinDetailService.insertErpInStockinDetail(erpInStockinDetail);
}
//更新wms子单
AddStockinDetailByErpStockinDetail(erpInStockinDetail);
}
}else {
log.info("请求未获取子单详情【needList:0】");
@@ -525,8 +550,65 @@ public class ToErpServiceImpl implements IToErpService {
return AjaxResult.success();
}
/**
* 根据erp入库单更新wms入库主单
* @param erpInStockin erp入库主单
*/
public void AddStockinByErpStockin(ErpInStockin erpInStockin) {
InStockin inStockin = new InStockin();
inStockin.setStockinGuid(erpInStockin.getStockinGuid());//guid
inStockin.setStockinId(erpInStockin.getKuin());//入库单据id
inStockin.setStatus(erpInStockin.getComplete1());//入库状态(区别erpInStockin.getStatus() - 审批状态)
inStockin.setCreateDate(DateUtil.now());//生成时间
inStockin.setErpBill(erpInStockin.getRkbh());//入库编号 RK_2025082107
inStockin.setInType(erpInStockin.getSort1());//入库类别
inStockin.setWarehouseId("0");//库区
inStockin.setStockSource("Erp");//单据来源
inStockin.setCustomerNo(erpInStockin.getSysIcusIInheritIdIidI413());//客户编码
inStockin.setRemark(erpInStockin.getIntro());//入库备注
try {
if (ObjUtil.isNotNull(inStockinService.selectInStockinByStockinGuid(erpInStockin.getStockinGuid()))) {
inStockinService.updateInStockin(inStockin);
}else{
inStockinService.insertInStockin(inStockin);
}
}catch(Exception e){
log.error("生成/更新主单据失败,主单据号:" + inStockin.getStockinId() + ",异常信息:" + e.getMessage());
}
}
/**
* 根据erp入库子单更新wms入库子单明细
* @param erpInStockinetail
*/
public void AddStockinDetailByErpStockinDetail(ErpInStockinDetail erpInStockinetail) {
InStockinDetail inStockinDetail = new InStockinDetail();
inStockinDetail.setStockinDetailId(erpInStockinetail.getId().toString());//明细id
inStockinDetail.setStockinGuid(erpInStockinetail.getSpare3());//入库主单guid
inStockinDetail.setStockinId(erpInStockinetail.getKuin());//主单id
inStockinDetail.setLotNo(erpInStockinetail.getPh());//批次
inStockinDetail.setProductId(erpInStockinetail.getSpare2());//物料编号
inStockinDetail.setAssignNum(erpInStockinetail.getQuantity().toString());//入库数量
inStockinDetail.setWarehouseId("0");//库区
inStockinDetail.setPrintDate(DateUtil.now());//库区
inStockinDetail.setStatus("");//单据状态
inStockinDetail.setRemark("");//入库备注
try {
if (ObjUtil.isNotNull(inStockinDetailService.selectInStockinDetailByStockinDetailId(inStockinDetail.getStockinGuid()))) {
inStockinDetailService.updateInStockinDetail(inStockinDetail);
}else{
inStockinDetailService.insertInStockinDetail(inStockinDetail);
}
}catch(Exception e){
log.error("生成/更新单据明细失败,主单据号:" + inStockinDetail.getStockinId() + ",异常信息:" + e.getMessage());
}
}
}

View File

@@ -81,6 +81,10 @@ public class ErpInStockinDetail extends BaseEntity
* 产品型号 - product_id
*/
private String spare2;
/**
* 主单guid
*/
private String spare3;
private String spare4;
private String spare5;

View File

@@ -75,10 +75,10 @@ public class InStockinController extends BaseController
* 获取入库单据详细信息
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:query')")
@GetMapping(value = "/{stockinGuid}")
public AjaxResult getInfo(@PathVariable("stockinGuid") String stockinGuid)
@GetMapping(value = "/{StockinGuid}")
public AjaxResult getInfo(@PathVariable("StockinGuid") String StockinGuid)
{
return success(inStockinService.selectInStockinByStockinGuid(stockinGuid));
return success(inStockinService.selectInStockinByStockinGuid(StockinGuid));
}
/**
@@ -108,9 +108,9 @@ public class InStockinController extends BaseController
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:remove')")
@Log(title = "入库单据", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockinGuids}")
public AjaxResult remove(@PathVariable String[] stockinGuids)
@DeleteMapping("/{StockinGuids}")
public AjaxResult remove(@PathVariable String[] StockinGuids)
{
return toAjax(inStockinService.deleteInStockinByStockinGuids(stockinGuids));
return toAjax(inStockinService.deleteInStockinByStockinGuids(StockinGuids));
}
}

View File

@@ -16,10 +16,10 @@ public interface IInStockinService
/**
* 查询入库单据
*
* @param stockinGuid 入库单据主键
* @param StockinGuid 入库单据主键
* @return 入库单据
*/
public InStockin selectInStockinByStockinGuid(String stockinGuid);
public InStockin selectInStockinByStockinGuid(String StockinGuid);
/**
* 查询入库单据列表
@@ -48,18 +48,18 @@ public interface IInStockinService
/**
* 批量删除入库单据
*
* @param stockinGuids 需要删除的入库单据主键集合
* @param StockinGuids 需要删除的入库单据主键集合
* @return 结果
*/
public int deleteInStockinByStockinGuids(String[] stockinGuids);
public int deleteInStockinByStockinGuids(String[] StockinGuids);
/**
* 删除入库单据信息
*
* @param stockinGuid 入库单据主键
* @param StockinGuid 入库单据主键
* @return 结果
*/
public int deleteInStockinByStockinGuid(String stockinGuid);
public int deleteInStockinByStockinGuid(String StockinGuid);
public List<InStockin> selectStockinByDetail(String stockinDetailId);
}

View File

@@ -134,6 +134,18 @@ public class InStockinDetail extends BaseEntity
@Excel(name = "备用字段6")
private String spare6;
/** 备用字段7 */
@Excel(name = "备用字段7")
private String spare7;
/** 备用字段8 */
@Excel(name = "备用字段8")
private String spare8;
/** 备用字段9 */
@Excel(name = "备用字段9")
private String spare9;
private String status;
private ExtraField extraField;