单据字段调整,子单货位分配,定时作业
This commit is contained in:
@@ -59,7 +59,6 @@ public class ToErpApiController {
|
||||
|
||||
@PostMapping("/qqq")
|
||||
public AjaxResult qqq() {
|
||||
ErpStockinParam p=new ErpStockinParam();
|
||||
return toErpService.getErpStockinList(p);
|
||||
return toErpService.getErpStockinList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,9 +34,11 @@ public interface IToErpService {
|
||||
AjaxResult receiveOutStockList();
|
||||
|
||||
|
||||
AjaxResult getErpStockinList(ErpStockinParam erpStockinParam);
|
||||
AjaxResult getErpStockinList();
|
||||
|
||||
void AddStockinByErpStockin(ErpInStockin erpInStockin);
|
||||
|
||||
void AddStockinDetailByErpStockinDetail(ErpInStockinDetail erpInStockinetail);
|
||||
|
||||
String getCargoSpaceByProductInfo(String productId);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,11 @@ package com.ruoyi.api.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
@@ -18,6 +19,8 @@ import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasProduct.service.IBasProductService;
|
||||
import com.ruoyi.bas.BasSupplier.domain.BasSupplier;
|
||||
import com.ruoyi.bas.BasSupplier.service.IBasSupplierService;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.in.ErpInStockin.domain.ErpInStockin;
|
||||
@@ -28,6 +31,8 @@ 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.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import com.ruoyi.out.ErpOutStock.domain.ErpOutStock;
|
||||
import com.ruoyi.out.OutStockMiddle.domain.OutStockMiddle;
|
||||
import com.ruoyi.out.ErpOutStockDetail.domain.ErpOutStockDetail;
|
||||
@@ -39,15 +44,18 @@ import com.ruoyi.out.OutStockMiddle.service.IOutStockMiddleService;
|
||||
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
|
||||
import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail;
|
||||
import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
|
||||
import com.ruoyi.stock.stock.domain.BasStock;
|
||||
import com.ruoyi.stock.stock.service.IBasStockService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
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;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 作业统计 Service 实现
|
||||
@@ -93,6 +101,18 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
@Autowired
|
||||
private IInStockinDetailService inStockinDetailService;
|
||||
|
||||
//货位
|
||||
@Autowired
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
|
||||
//库存
|
||||
@Autowired
|
||||
private IBasStockService basStockService;
|
||||
|
||||
//日志
|
||||
@Autowired
|
||||
private IRequestLogService requestLogService;
|
||||
|
||||
@Autowired
|
||||
private IBasJobIdService basJobIdService;
|
||||
|
||||
@@ -431,79 +451,92 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
}
|
||||
|
||||
|
||||
//入库单据执行计数(用于区分是否首次执行获取单据请求)
|
||||
int num = 0;
|
||||
|
||||
/**
|
||||
* 请求入库单列表
|
||||
*
|
||||
* @param erpStockinParam
|
||||
* 入库单据 -> 请求入库单列表
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult getErpStockinList(ErpStockinParam erpStockinParam){
|
||||
@Scheduled(fixedDelay = 60_000)
|
||||
public AjaxResult getErpStockinList(){
|
||||
|
||||
erpStockinParam = new ErpStockinParam();
|
||||
ErpStockinParam erpStockinParam = new ErpStockinParam();
|
||||
|
||||
// 首次执行(num=0)时,同步所有单据数据
|
||||
// 后续执行(num>0)仅同步指定时间内的单据数据
|
||||
if (num > 0){
|
||||
//当前时间
|
||||
DateTime dateNow = DateUtil.date();
|
||||
String dateStart = dateNow.offset(DateField.SECOND, -60).toString();
|
||||
String dateEnd = DateUtil.date().toString();
|
||||
//todo 请求筛选时间似乎时分秒条件无效,只能筛选年月日条件
|
||||
//todo 请求筛选时间似乎时分秒条件无效,只能筛选年月日条件
|
||||
// erpStockinParam.setDate3Start(dateStart);//请求筛选:开始时间
|
||||
// erpStockinParam.setDate3End(dateEnd);//请求筛选:结束时间
|
||||
}
|
||||
|
||||
//测试
|
||||
erpStockinParam.setTitle("");
|
||||
// erpStockinParam.setNeedList(0);
|
||||
|
||||
//获取请求参数
|
||||
String requestSession = login();
|
||||
String response = HttpRequest.post(getStockinListUrl)
|
||||
.header(TOKEN_KEY,requestSession)
|
||||
.body(JSONUtil.toJsonStr(erpStockinParam))
|
||||
.execute()
|
||||
.body();
|
||||
|
||||
//处理响应信息
|
||||
try {
|
||||
log.info(">>>>>>>>>>>>>>>>>>>> 开始更新入库单据 >>>>>>>>>>>>>>>>>>>>");
|
||||
//------获取请求响应
|
||||
String response = getResponse(getStockinListUrl, erpStockinParam, "更新入库单据");
|
||||
|
||||
//------处理响应信息
|
||||
ErpStockinResponse res = JSONUtil.toBean(response, ErpStockinResponse.class);
|
||||
for (List<Object> list : res.getRows()) {
|
||||
//获取入库主单参数
|
||||
|
||||
//【入库id】校验单据是否存在
|
||||
String kuin = Convert.toStr(list.get(1));
|
||||
ErpInStockin erpInStockin = new ErpInStockin();
|
||||
erpInStockin.setTitle(Convert.toStr(list.get(0)));
|
||||
erpInStockin.setKuin(Convert.toStr(list.get(1)));
|
||||
erpInStockin.setComplete1(Convert.toStr(list.get(2)));
|
||||
erpInStockin.setCateid(Convert.toStr(list.get(3)));
|
||||
erpInStockin.setDate3(Convert.toStr(list.get(4)));
|
||||
erpInStockin.setDate5(Convert.toStr(list.get(5)));
|
||||
erpInStockin.setCatein(Convert.toStr(list.get(6)));
|
||||
erpInStockin.setIntro2(Convert.toStr(list.get(7)));
|
||||
erpInStockin.setIntro(Convert.toStr(list.get(8)));
|
||||
erpInStockin.setCaigou(Convert.toStr(list.get(9)));
|
||||
erpInStockin.setDate7(Convert.toStr(list.get(10)));
|
||||
erpInStockin.setKg(Convert.toStr(list.get(11)));
|
||||
erpInStockin.setSort1(Convert.toStr(list.get(12)));
|
||||
erpInStockin.setRkbh(Convert.toStr(list.get(13)));
|
||||
erpInStockin.setStatus(Convert.toStr(list.get(14)));
|
||||
//todo 入库单明细长度?
|
||||
erpInStockin.setKuinList(Convert.toStr(list.get(15)));
|
||||
erpInStockin.setSysIcusIInheritIdIidI413(Convert.toStr(list.get(16)));
|
||||
erpInStockin.setSysIcusIInheritIdIidI414(Convert.toStr(list.get(17)));
|
||||
erpInStockin.setSysIcusIInheritIdIidI415(Convert.toStr(list.get(18)));
|
||||
|
||||
String id = "RK" + DateUtil.date().toString("yyyyMMdd") + erpInStockin.getKuin();
|
||||
erpInStockin.setStockinGuid(id);
|
||||
//获取入库主单参数
|
||||
erpInStockin.setTitle(Convert.toStr(list.get(0)));//主题
|
||||
erpInStockin.setKuin(kuin);//入库id
|
||||
erpInStockin.setComplete1(Convert.toStr(list.get(2)));//入库状态
|
||||
erpInStockin.setCateid(Convert.toStr(list.get(3)));//申请人
|
||||
erpInStockin.setDate3(Convert.toStr(list.get(4)));//申请日期
|
||||
erpInStockin.setDate5(Convert.toStr(list.get(5)));//确认日期
|
||||
erpInStockin.setCatein(Convert.toStr(list.get(6)));//审批人
|
||||
erpInStockin.setIntro2(Convert.toStr(list.get(7)));//审批意见
|
||||
erpInStockin.setIntro(Convert.toStr(list.get(8)));//备注
|
||||
erpInStockin.setCaigou(Convert.toStr(list.get(9)));//其他采购单据
|
||||
erpInStockin.setDate7(Convert.toStr(list.get(10)));//erp添加时间
|
||||
erpInStockin.setKg(Convert.toStr(list.get(11)));//库管
|
||||
erpInStockin.setSort1(Convert.toStr(list.get(12)));//入库类别
|
||||
erpInStockin.setRkbh(Convert.toStr(list.get(13)));//入库编号
|
||||
erpInStockin.setStatus(Convert.toStr(list.get(14)));//审批状态
|
||||
erpInStockin.setKuinList(Convert.toStr(list.get(15)));//主单明细
|
||||
erpInStockin.setSysIcusIInheritIdIidI413(Convert.toStr(list.get(16)));//客户名称
|
||||
erpInStockin.setSysIcusIInheritIdIidI414(Convert.toStr(list.get(17)));//
|
||||
erpInStockin.setSysIcusIInheritIdIidI415(Convert.toStr(list.get(18)));//车号
|
||||
String id = erpInStockin.getRkbh() + "_" + erpInStockin.getKuin();
|
||||
erpInStockin.setStockinGuid(id);//guid
|
||||
|
||||
//校验单据是否已经在表中 - 新增/更新
|
||||
if (ObjUtil.isNotNull(erpInStockinService.selectErpInStockinByKuin(erpInStockin.getKuin()))) {
|
||||
//------校验单据是否已经在表中 - 新增/更新
|
||||
if (ObjUtil.isNotNull(erpInStockinService.selectErpInStockinByKuin(kuin))) {
|
||||
erpInStockinService.updateErpInStockin(erpInStockin);
|
||||
}else{
|
||||
erpInStockinService.insertErpInStockin(erpInStockin);
|
||||
}
|
||||
|
||||
//更新wms主单
|
||||
//------更新wms主单
|
||||
AddStockinByErpStockin(erpInStockin);
|
||||
|
||||
//========================================================================================================================================
|
||||
|
||||
//根据主单【kuinlist】字段获取子单信息
|
||||
//------根据主单【kuinlist】字段获取子单信息
|
||||
if (erpStockinParam.getNeedList() == 1) {
|
||||
|
||||
//获取子单明细
|
||||
//------获取子单明细
|
||||
JSONObject jsonObject = JSONUtil.parseObj(erpInStockin.getKuinList());
|
||||
jsonObject.get("rows");
|
||||
ErpStockinDetailResponse resDetail = JSONUtil.toBean(erpInStockin.getKuinList(), ErpStockinDetailResponse.class);
|
||||
|
||||
//生成子单信息
|
||||
//------生成子单信息
|
||||
for (List<Object> details : resDetail.getRows()){
|
||||
//获取入库子单数据
|
||||
ErpInStockinDetail erpInStockinDetail = new ErpInStockinDetail();
|
||||
@@ -511,7 +544,6 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
erpInStockinDetail.setQuantity(Convert.toLong(details.get(9)));//入库数量
|
||||
erpInStockinDetail.setAssistUnit(Convert.toLong(details.get(5)));//辅助单位
|
||||
erpInStockinDetail.setAssistQuantity(Convert.toLong(details.get(9)));//辅助数量
|
||||
erpInStockinDetail.setWarehousePositionID(0L);//货位
|
||||
erpInStockinDetail.setKu(0L);//库区
|
||||
erpInStockinDetail.setPh(Convert.toStr(details.get(17)));//批号
|
||||
erpInStockinDetail.setXlh(Convert.toStr(details.get(18)));//序列号
|
||||
@@ -522,19 +554,23 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
erpInStockinDetail.setSpare1(Convert.toStr(details.get(1)));//产品名称 - product_name
|
||||
erpInStockinDetail.setSpare2(Convert.toStr(details.get(2)));//产品型号 - product_id
|
||||
|
||||
//自动分配货位区域
|
||||
String cargoSpace = getCargoSpaceByProductInfo(Convert.toStr(details.get(2)));
|
||||
erpInStockinDetail.setWarehousePositionID(cargoSpace);//货位
|
||||
|
||||
//关联主单
|
||||
erpInStockinDetail.setKuin(erpInStockin.getKuin());//入库id
|
||||
erpInStockinDetail.setRkbh(erpInStockin.getRkbh());//入库编号
|
||||
erpInStockinDetail.setSpare3(erpInStockin.getStockinGuid());//入库单guid
|
||||
|
||||
//校验数据是否已经在表中 - 新增/更新
|
||||
//------校验数据是否已经在表中 - 新增/更新
|
||||
if (ObjUtil.isNotNull(erpInStockinDetailService.selectErpInStockinDetailById(erpInStockinDetail.getId()))) {
|
||||
erpInStockinDetailService.updateErpInStockinDetail(erpInStockinDetail);
|
||||
}else{
|
||||
erpInStockinDetailService.insertErpInStockinDetail(erpInStockinDetail);
|
||||
}
|
||||
|
||||
//更新wms子单
|
||||
//------更新wms子单
|
||||
AddStockinDetailByErpStockinDetail(erpInStockinDetail);
|
||||
}
|
||||
}else {
|
||||
@@ -543,33 +579,72 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
|
||||
}
|
||||
}catch(Exception e){
|
||||
log.error("请求异常:" + e.getMessage());
|
||||
log.error("获取/同步单据异常:" + e.getMessage());
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
log.info("<<<<<<<<<<<<<<<<<<<< 更新入库单据完成 <<<<<<<<<<<<<<<<<<<<");
|
||||
num++;
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据erp入库单更新wms入库主单
|
||||
* 生成入库单据 -> 获取请求响应
|
||||
* @param url 请求地址
|
||||
* @param param 请求参数
|
||||
* @param remark
|
||||
* @return 响应信息
|
||||
*/
|
||||
public String getResponse(String url, Object param, String remark){
|
||||
try {
|
||||
//------获取请求响应
|
||||
String requestSession = login();
|
||||
String response = HttpRequest.post(url)
|
||||
.header(TOKEN_KEY,requestSession)
|
||||
.body(JSONUtil.toJsonStr(param))
|
||||
.execute()
|
||||
.body();
|
||||
|
||||
//生成请求记录
|
||||
RequestLog requestLog = new RequestLog();
|
||||
requestLog.setRequestTime(DateUtil.now());
|
||||
requestLog.setSourceSystem("wms");
|
||||
requestLog.setTargetSystem("erp");
|
||||
requestLog.setEndpoint(remark);
|
||||
requestLog.setRequestUrl(url);
|
||||
requestLog.setRequestMethod("POST");
|
||||
requestLog.setRequestBody(JSONUtil.toJsonStr(param));
|
||||
requestLog.setIsSuccessful("");
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
log.error("请求异常:" + e.getMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成入库单据 -> 根据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 {
|
||||
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());//入库备注
|
||||
|
||||
//更新/新增wms入库单据
|
||||
if (ObjUtil.isNotNull(inStockinService.selectInStockinByStockinGuid(erpInStockin.getStockinGuid()))) {
|
||||
inStockinService.updateInStockin(inStockin);
|
||||
}else{
|
||||
@@ -578,29 +653,31 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
}catch(Exception e){
|
||||
log.error("生成/更新主单据失败,主单据号:" + inStockin.getStockinId() + ",异常信息:" + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据erp入库子单更新wms入库子单明细
|
||||
* 生成入库单据 -> 根据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()))) {
|
||||
//向wms入库单据表同步erp主单信息
|
||||
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("");//入库备注
|
||||
|
||||
//更新/新增wms入库明细
|
||||
if (ObjUtil.isNotNull(inStockinDetailService.selectInStockinDetailByStockinGuid(inStockinDetail.getStockinGuid()))) {
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
}else{
|
||||
inStockinDetailService.insertInStockinDetail(inStockinDetail);
|
||||
@@ -608,6 +685,76 @@ public class ToErpServiceImpl implements IToErpService {
|
||||
}catch(Exception e){
|
||||
log.error("生成/更新单据明细失败,主单据号:" + inStockinDetail.getStockinId() + ",异常信息:" + e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成入库单据 -> 向子单明细分配入库货位
|
||||
* 获取库存物料号 -> 货位id -> 存储区组group -> 状态:未占用 -> 按规则获取货位
|
||||
* @param productId 物料号
|
||||
* @return
|
||||
*/
|
||||
public String getCargoSpaceByProductInfo(String productId){
|
||||
|
||||
//>>>>>>>>>>>>>>获取物料库存信息 -> 有库存 -> 货位(cargospace) -> 存储区组(groupCodingNo) -> 根据groupCoding(由高到低) -> 获取状态1的货位分配
|
||||
//>>>>>>>>>>>>>>获取物料库存信息 -> 无库存 -> 遍历存储区组(groupCodingNo) -> 查找全部货位空的区组 -> 根据groupCoding(由高到低) -> 获取状态1的货位分配
|
||||
|
||||
try {
|
||||
//获取物料的货位集合 - 首先查找已经存放该物料的存储区
|
||||
List<BasStock> stocks = basStockService.selectBasStockListByProductId(productId);
|
||||
|
||||
//如果集合空 - 寻找未被占用的存储区组放货
|
||||
if (stocks.size() == 0) {
|
||||
for (int i = 1; i <= 45; i++) {
|
||||
BasCargoSpace cargospace = new BasCargoSpace();
|
||||
|
||||
//存储区
|
||||
String groupCodingNo = String.format("%03d", i);
|
||||
cargospace.setGroupCodingNo(groupCodingNo);
|
||||
|
||||
//获取【groupCodingNo】所有货位
|
||||
List<BasCargoSpace> cargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(cargospace);
|
||||
|
||||
//判断是否全部未占用,即某存储区全部为空位 - 避免物料混放
|
||||
boolean isAllEmpty = cargoSpaces.stream().allMatch(c -> "1".equals(c.getStatus()));
|
||||
|
||||
//区域未占用 - 则分配最内侧货位
|
||||
if (isAllEmpty && cargoSpaces.size() > 0) {
|
||||
cargoSpaces.sort(Comparator.comparing(BasCargoSpace::getGroupCoding).reversed());
|
||||
return cargoSpaces.get(0).getCargoSpaceId();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//如果物料已经存放在多个货位(区域) - 去重
|
||||
List<BasStock> stocksNew = stocks.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
//查询对应货位的区域在【BasCargoSpace】是否有空位 - 在groupCodingNo的分组中是否仍然有状态【1】的货位
|
||||
for (BasStock stock : stocksNew){
|
||||
//获取每种物料的存放货位信息
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(stock.getCargoSpaceId());
|
||||
|
||||
//获取每种物料的存放货位信息 - 存储区
|
||||
String group = cargoSpace.getGroupCodingNo();
|
||||
|
||||
//获取该存储区组的所有货位
|
||||
List<BasCargoSpace> cargoSpaces = basCargoSpaceService.selectBasCargoSpaceListByGroupCodingNo(group);
|
||||
|
||||
//在集合中获取状态为【1】的货位
|
||||
for (BasCargoSpace cs : cargoSpaces){
|
||||
//货位状态:1(未占用) -> 返回该货位结果
|
||||
if ("1".equals(cs.getStatus())){
|
||||
return cs.getCargoSpaceId();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}catch(Exception e){
|
||||
log.error("入库子单获取目标货位失败,异常信息:" + e.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.ruoyi.bas.cargoSpace.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -31,6 +30,14 @@ public interface BasCargoSpaceMapper extends BaseMapper<BasCargoSpace>
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceList(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 根据【存储区组】查询库存信息列表
|
||||
*
|
||||
* @param groupCodingNo 存储区组
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListByGroupCodingNo(String groupCodingNo);
|
||||
|
||||
/**
|
||||
* 新增库存信息
|
||||
*
|
||||
|
||||
@@ -30,6 +30,14 @@ public interface IBasCargoSpaceService extends IService<BasCargoSpace>
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceList(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 根据【存储区域组】查询库存信息列表
|
||||
*
|
||||
* @param groupCodingNo 库存区组
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListByGroupCodingNo(String groupCodingNo);
|
||||
|
||||
/**
|
||||
* 新增库存信息
|
||||
*
|
||||
|
||||
@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
|
||||
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
|
||||
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
|
||||
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -42,12 +41,24 @@ public class BasCargoSpaceServiceImpl extends ServiceImpl<BasCargoSpaceMapper,Ba
|
||||
* @return 库存信息
|
||||
*/
|
||||
@Override
|
||||
@DataScope(warehouseAlias = "bw")
|
||||
// @DataScope(warehouseAlias = "bw")
|
||||
public List<BasCargoSpace> selectBasCargoSpaceList(BasCargoSpace basCargoSpace)
|
||||
{
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceList(basCargoSpace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据【存储区组】查询库存信息列表
|
||||
*
|
||||
* @param groupCodingNo 存储区组
|
||||
* @return 库存信息
|
||||
*/
|
||||
@Override
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListByGroupCodingNo(String groupCodingNo){
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceListByGroupCodingNo(groupCodingNo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存信息
|
||||
*
|
||||
|
||||
@@ -66,7 +66,7 @@ public class ErpInStockinController extends BaseController
|
||||
@GetMapping(value = "/{title}")
|
||||
public AjaxResult getInfo(@PathVariable("title") String title)
|
||||
{
|
||||
return success(erpInStockinService.selectErpInStockinByKuin(title));
|
||||
return success(erpInStockinService.selectErpInStockinByStockinGuid(title));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -99,6 +99,6 @@ public class ErpInStockinController extends BaseController
|
||||
@DeleteMapping("/{titles}")
|
||||
public AjaxResult remove(@PathVariable String[] kuins)
|
||||
{
|
||||
return toAjax(erpInStockinService.deleteErpInStockinByKuins(kuins));
|
||||
return toAjax(erpInStockinService.deleteErpInStockinByStockinGuids(kuins));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,9 @@ public class ErpInStockin extends BaseEntity
|
||||
@Excel(name = "入库编号")
|
||||
private String rkbh;
|
||||
|
||||
/** 审批状态 */
|
||||
/**
|
||||
* 审批状态 - 请求【确认入库】时需要
|
||||
*/
|
||||
@Excel(name = "审批状态")
|
||||
private String status;
|
||||
|
||||
|
||||
@@ -14,11 +14,27 @@ public interface ErpInStockinMapper
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param kuin 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByStockinGuid(String stockinGuid);
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param kuin 入库id
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByKuin(String kuin);
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param rkbh 入库编号
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByRkbh(String rkbh);
|
||||
|
||||
/**
|
||||
* 查询入库主表单列表
|
||||
*
|
||||
@@ -54,16 +70,16 @@ public interface ErpInStockinMapper
|
||||
/**
|
||||
* 删除入库主表单
|
||||
*
|
||||
* @param kuin 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteErpInStockinByKuin(String kuin);
|
||||
public int deleteErpInStockinByStockinGuid(String stockinGuid);
|
||||
|
||||
/**
|
||||
* 批量删除入库主表单
|
||||
*
|
||||
* @param kuins 需要删除的数据主键集合
|
||||
* @param stockinGuids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteErpInStockinByKuins(String[] kuins);
|
||||
public int deleteErpInStockinByStockinGuids(String[] stockinGuids);
|
||||
}
|
||||
|
||||
@@ -14,11 +14,27 @@ public interface IErpInStockinService
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param kuin 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByStockinGuid(String stockinGuid);
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param kuin 入库id
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByKuin(String kuin);
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param rkbh 入库编号
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByRkbh(String rkbh);
|
||||
|
||||
/**
|
||||
* 查询入库主表单列表
|
||||
*
|
||||
@@ -54,16 +70,16 @@ public interface IErpInStockinService
|
||||
/**
|
||||
* 批量删除入库主表单
|
||||
*
|
||||
* @param kuins 需要删除的入库主表单主键集合
|
||||
* @param stockinGuids 需要删除的入库主表单主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteErpInStockinByKuins(String[] kuins);
|
||||
public int deleteErpInStockinByStockinGuids(String[] stockinGuids);
|
||||
|
||||
/**
|
||||
* 删除入库主表单信息
|
||||
*
|
||||
* @param kuin 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteErpInStockinByKuin(String kuin);
|
||||
public int deleteErpInStockinByStockinGuid(String stockinGuid);
|
||||
}
|
||||
|
||||
@@ -22,13 +22,33 @@ public class ErpInStockinServiceImpl implements IErpInStockinService
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param stockinId 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 入库主表单
|
||||
*/
|
||||
@Override
|
||||
public ErpInStockin selectErpInStockinByKuin(String stockinId)
|
||||
public ErpInStockin selectErpInStockinByStockinGuid(String stockinGuid)
|
||||
{
|
||||
return erpInStockinMapper.selectErpInStockinByKuin(stockinId);
|
||||
return erpInStockinMapper.selectErpInStockinByStockinGuid(stockinGuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param kuin 入库id
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByKuin(String kuin){
|
||||
return erpInStockinMapper.selectErpInStockinByKuin(kuin);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入库主表单
|
||||
*
|
||||
* @param rkbh 入库编号
|
||||
* @return 入库主表单
|
||||
*/
|
||||
public ErpInStockin selectErpInStockinByRkbh(String rkbh){
|
||||
return erpInStockinMapper.selectErpInStockinByRkbh(rkbh);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,24 +101,24 @@ public class ErpInStockinServiceImpl implements IErpInStockinService
|
||||
/**
|
||||
* 批量删除入库主表单
|
||||
*
|
||||
* @param stockinIds 需要删除的入库主表单主键
|
||||
* @param stockinGuids 需要删除的入库主表单主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteErpInStockinByKuins(String[] kuins)
|
||||
public int deleteErpInStockinByStockinGuids(String[] stockinGuids)
|
||||
{
|
||||
return erpInStockinMapper.deleteErpInStockinByKuins(kuins);
|
||||
return erpInStockinMapper.deleteErpInStockinByStockinGuids(stockinGuids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除入库主表单信息
|
||||
*
|
||||
* @param stockinId 入库主表单主键
|
||||
* @param stockinGuid 入库主表单主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteErpInStockinByKuin(String kuin)
|
||||
public int deleteErpInStockinByStockinGuid(String stockinGuid)
|
||||
{
|
||||
return erpInStockinMapper.deleteErpInStockinByKuin(kuin);
|
||||
return erpInStockinMapper.deleteErpInStockinByStockinGuid(stockinGuid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ErpInStockinDetail extends BaseEntity
|
||||
|
||||
/** 库位id */
|
||||
@Excel(name = "库位id")
|
||||
private Long warehousePositionID;
|
||||
private String warehousePositionID;
|
||||
|
||||
/** 批号 */
|
||||
@Excel(name = "批号")
|
||||
@@ -66,11 +66,11 @@ public class ErpInStockinDetail extends BaseEntity
|
||||
private String sysIcusIInheritIdIidI1;
|
||||
|
||||
/** 入库单id(关联主单) */
|
||||
@Excel(name = "入库单id", readConverterExp = "关=联主单")
|
||||
@Excel(name = "入库单id", readConverterExp = "关联主单")
|
||||
private String kuin;
|
||||
|
||||
/** 入库编号(关联主单) */
|
||||
@Excel(name = "入库编号", readConverterExp = "关=联主单")
|
||||
@Excel(name = "入库编号", readConverterExp = "关联主单")
|
||||
private String rkbh;
|
||||
|
||||
/**
|
||||
@@ -140,12 +140,12 @@ public class ErpInStockinDetail extends BaseEntity
|
||||
return ku;
|
||||
}
|
||||
|
||||
public void setWarehousePositionID(Long warehousePositionID)
|
||||
public void setWarehousePositionID(String warehousePositionID)
|
||||
{
|
||||
this.warehousePositionID = warehousePositionID;
|
||||
}
|
||||
|
||||
public Long getWarehousePositionID()
|
||||
public String getWarehousePositionID()
|
||||
{
|
||||
return warehousePositionID;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,15 @@ public interface InStockinDetailMapper
|
||||
*/
|
||||
public InStockinDetail selectInStockinDetailByStockinDetailId(String stockinDetailId);
|
||||
|
||||
/**
|
||||
* 查询入库单据子表
|
||||
*
|
||||
* @param stockinGuid
|
||||
* @return 入库单据子表
|
||||
*/
|
||||
public InStockinDetail selectInStockinDetailByStockinGuid(String stockinGuid);
|
||||
|
||||
|
||||
/**
|
||||
* 查询入库单据子表列表
|
||||
*
|
||||
|
||||
@@ -23,6 +23,14 @@ public interface IInStockinDetailService
|
||||
*/
|
||||
public InStockinDetail selectInStockinDetailByStockinDetailId(String stockinDetailId);
|
||||
|
||||
/**
|
||||
* 查询入库单据子表
|
||||
*
|
||||
* @param stockinGuid 入库单据子表主键
|
||||
* @return 入库单据子表
|
||||
*/
|
||||
public InStockinDetail selectInStockinDetailByStockinGuid(String stockinGuid);
|
||||
|
||||
/**
|
||||
* 查询入库单据子表列表
|
||||
*
|
||||
|
||||
@@ -40,6 +40,18 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
|
||||
return inStockinDetailMapper.selectInStockinDetailByStockinDetailId(stockinDetailId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入库单据子表
|
||||
*
|
||||
* @param stockinGuid
|
||||
* @return 入库单据子表
|
||||
*/
|
||||
@Override
|
||||
public InStockinDetail selectInStockinDetailByStockinGuid(String stockinGuid)
|
||||
{
|
||||
return inStockinDetailMapper.selectInStockinDetailByStockinGuid(stockinGuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入库单据子表列表
|
||||
*
|
||||
|
||||
@@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* KPI 统计分析 服务实现类
|
||||
|
||||
@@ -21,6 +21,15 @@ public interface BasStockMapper
|
||||
*/
|
||||
public BasStock selectBasStockByStockId(String stockId);
|
||||
|
||||
/**
|
||||
* 根据【物料号】查询库存信息列表
|
||||
*
|
||||
* @param productId 物料信息主键
|
||||
* @return 物料信息
|
||||
*/
|
||||
public List<BasStock> selectBasStockListByProductId(String productId);
|
||||
|
||||
|
||||
/**
|
||||
* 查询库存信息列表
|
||||
*
|
||||
|
||||
@@ -21,6 +21,14 @@ public interface IBasStockService
|
||||
*/
|
||||
public BasStock selectBasStockByStockId(String stockId);
|
||||
|
||||
|
||||
/**
|
||||
* 根据物料查询货位
|
||||
* @param productId
|
||||
* @return 货位集合
|
||||
*/
|
||||
public List<BasStock> selectBasStockListByProductId(String productId);
|
||||
|
||||
/**
|
||||
* 查询库存信息列表
|
||||
*
|
||||
@@ -81,4 +89,5 @@ public interface IBasStockService
|
||||
List<BasStock> selectKtpStock(BasStock basStock);
|
||||
|
||||
AjaxResult resetPdRecord();
|
||||
|
||||
}
|
||||
|
||||
@@ -49,6 +49,15 @@ public class BasStockServiceImpl implements IBasStockService
|
||||
return basStockMapper.selectBasStockByStockId(stockId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据【物料号】获取库存列表
|
||||
* @param productId - 物料号
|
||||
* @return
|
||||
*/
|
||||
public List<BasStock> selectBasStockListByProductId(String productId){
|
||||
return basStockMapper.selectBasStockListByProductId(productId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询库存信息列表
|
||||
*
|
||||
|
||||
@@ -83,6 +83,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
order by the_platoon,the_floor,the_column
|
||||
</select>
|
||||
|
||||
<select id="selectBasCargoSpaceListByGroupCodingNo" parameterType="string" resultMap="BasCargoSpaceResult">
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
<where>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and bcs.cargo_space_id like concat('%', #{cargoSpaceId}, '%')</if>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and bcs.warehouse_id = #{warehouseId}</if>
|
||||
<if test="roadwayId != null and roadwayId != ''"> and bcs.roadway_id = #{roadwayId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and bcs.cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theType != null and theType != ''"> and bcs.the_type = #{theType}</if>
|
||||
<if test="theTypeName != null and theTypeName != ''"> and bcs.the_type_name like concat('%', #{theTypeName}, '%')</if>
|
||||
<if test="cargoSpaceName != null and cargoSpaceName != ''"> and bcs.cargo_space_name like concat('%', #{cargoSpaceName}, '%')</if>
|
||||
<if test="thePlatoon != null "> and bcs.the_platoon = #{thePlatoon}</if>
|
||||
<if test="theColumn != null "> and bcs.the_column = #{theColumn}</if>
|
||||
<if test="theFloor != null "> and bcs.the_floor = #{theFloor}</if>
|
||||
<if test="status != null and status != ''"> and bcs.status = #{status}</if>
|
||||
<if test="locked != null and locked != ''"> and bcs.locked = #{locked}</if>
|
||||
<if test="trayCode != null and trayCode != ''"> and bcs.tray_code like concat('%', #{trayCode}, '%')</if>
|
||||
<if test="cargoHight != null and cargoHight != ''"> and bcs.cargo_hight = #{cargoHight}</if>
|
||||
<if test="issDouble != null and issDouble != ''"> and bcs.iss_double = #{issDouble}</if>
|
||||
<if test="groupCodingNo != null and groupCodingNo != ''"> and bcs.group_coding_no = #{groupCodingNo}</if>
|
||||
<if test="groupCoding != null and groupCoding != ''"> and bcs.group_coding = #{groupCoding}</if>
|
||||
<if test="cargoSpaceLogo != null and cargoSpaceLogo != ''"> and bcs.cargo_space_logo = #{cargoSpaceLogo}</if>
|
||||
<if test="thisCargoArea != null and thisCargoArea != ''"> and bcs.this_cargo_area = #{thisCargoArea}</if>
|
||||
<!-- <if test="params.warehouseDataScope != null and params.warehouseDataScope !=''">-->
|
||||
<!-- ${params.warehouseDataScope}-->
|
||||
<!-- </if>-->
|
||||
</where>
|
||||
order by group_coding desc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectBasCargoSpaceByCargoSpaceId" parameterType="String" resultMap="BasCargoSpaceResult">
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
where cargo_space_id = #{cargoSpaceId}
|
||||
|
||||
@@ -57,11 +57,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectErpInStockinByStockinGuid" parameterType="String" resultMap="ErpInStockinResult">
|
||||
<include refid="selectErpInStockinVo"/>
|
||||
where stockin_guid = #{stockinGuid}
|
||||
</select>
|
||||
|
||||
<select id="selectErpInStockinByKuin" parameterType="String" resultMap="ErpInStockinResult">
|
||||
<include refid="selectErpInStockinVo"/>
|
||||
where kuin = #{kuin}
|
||||
</select>
|
||||
|
||||
<select id="selectErpInStockinByRkbh" parameterType="String" resultMap="ErpInStockinResult">
|
||||
<include refid="selectErpInStockinVo"/>
|
||||
where rkbh = #{rkbh}
|
||||
</select>
|
||||
|
||||
<insert id="insertErpInStockin" parameterType="ErpInStockin">
|
||||
insert into erp_in_stockin
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
@@ -131,9 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="sysIcusIInheritIdIidI413 != null">sysIcusIInheritIdIidI413 = #{sysIcusIInheritIdIidI413},</if>
|
||||
<if test="sysIcusIInheritIdIidI414 != null">sysIcusIInheritIdIidI414 = #{sysIcusIInheritIdIidI414},</if>
|
||||
<if test="sysIcusIInheritIdIidI415 != null">sysIcusIInheritIdIidI415 = #{sysIcusIInheritIdIidI415},</if>
|
||||
<if test="stockinGuid != null">stockin_guid = #{stockinGuid},</if>
|
||||
</trim>
|
||||
where kuin = #{kuin}
|
||||
where stockin_guid = #{stockinGuid}
|
||||
</update>
|
||||
|
||||
<insert id="upsertErpInStockin" parameterType="ErpInStockin">
|
||||
@@ -154,14 +163,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
-- ON tar.stockin_id = src.stockin_id
|
||||
</insert>
|
||||
|
||||
<delete id="deleteErpInStockinByKuin" parameterType="String">
|
||||
delete from erp_in_stockin where kuin = #{kuin}
|
||||
<delete id="deleteErpInStockinByStockinGuid" parameterType="String">
|
||||
delete from erp_in_stockin where stockin_guid = #{stockinGuid}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteErpInStockinByKuins" parameterType="String">
|
||||
delete from erp_in_stockin where kuin in
|
||||
<foreach item="kuin" collection="array" open="(" separator="," close=")">
|
||||
#{kuin}
|
||||
<delete id="deleteErpInStockinByStockinGuids" parameterType="String">
|
||||
delete from erp_in_stockin where stockin_guid in
|
||||
<foreach item="stockinGuid" collection="array" open="(" separator="," close=")">
|
||||
#{stockinGuid}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -107,6 +107,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
where stockin_detail_id = #{stockinDetailId}
|
||||
</select>
|
||||
|
||||
<select id="selectInStockinDetailByStockinGuid" parameterType="String" resultMap="InStockinDetailResult">
|
||||
<include refid="selectInStockinDetailVo"/>
|
||||
where stockin_guid = #{stockinGuid}
|
||||
</select>
|
||||
|
||||
<insert id="insertInStockinDetail" parameterType="InStockinDetail">
|
||||
insert into in_stockin_detail
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
@@ -220,6 +220,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
where stock_id = #{stockId}
|
||||
</select>
|
||||
|
||||
<select id="selectBasStockListByProductId" parameterType="string" resultMap="BasStockResult">
|
||||
<include refid="selectBasStockVo"/>
|
||||
where bs.product_id = #{productId}
|
||||
</select>
|
||||
|
||||
<insert id="insertBasStock" parameterType="BasStock">
|
||||
insert into bas_stock
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
Reference in New Issue
Block a user