|
@@ -1,9 +1,18 @@
|
|
|
package com.ruoyi.ams.asn.service.impl;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+
|
|
|
+import com.ruoyi.ams.asn.form.StockForm;
|
|
|
+import com.ruoyi.ams.asn.form.StockInfoForm;
|
|
|
+import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
import com.ruoyi.common.utils.StringUtils;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
|
|
@@ -13,37 +22,34 @@ import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
|
|
|
|
|
|
/**
|
|
|
* 入库单Service业务层处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author ruoyi
|
|
|
* @date 2022-10-12
|
|
|
*/
|
|
|
@Service
|
|
|
-public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
-{
|
|
|
+public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
|
|
|
@Autowired
|
|
|
private WmsDocAsnHeaderMapper wmsDocAsnHeaderMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询入库单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param asnNo 入库单主键
|
|
|
* @return 入库单
|
|
|
*/
|
|
|
@Override
|
|
|
- public WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo)
|
|
|
- {
|
|
|
+ public WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo) {
|
|
|
return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询入库单列表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param wmsDocAsnHeader 入库单
|
|
|
* @return 入库单
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<WmsDocAsnHeader> selectWmsDocAsnHeaderList(WmsDocAsnHeader wmsDocAsnHeader)
|
|
|
- {
|
|
|
+ public List<WmsDocAsnHeader> selectWmsDocAsnHeaderList(WmsDocAsnHeader wmsDocAsnHeader) {
|
|
|
return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderList(wmsDocAsnHeader);
|
|
|
}
|
|
|
|
|
@@ -54,10 +60,9 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
* @return 入库单
|
|
|
*/
|
|
|
@Override
|
|
|
- public WmsDocAsnHeader selectWmsDocAsnHeaderByModel(WmsDocAsnHeader wmsDocAsnHeader)
|
|
|
- {
|
|
|
+ public WmsDocAsnHeader selectWmsDocAsnHeaderByModel(WmsDocAsnHeader wmsDocAsnHeader) {
|
|
|
List<WmsDocAsnHeader> list = wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderList(wmsDocAsnHeader);
|
|
|
- if (list!=null && list.size()>0) {
|
|
|
+ if (list != null && list.size() > 0) {
|
|
|
return list.get(0);
|
|
|
} else {
|
|
|
return null;
|
|
@@ -66,14 +71,13 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
|
|
|
/**
|
|
|
* 新增入库单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param wmsDocAsnHeader 入库单
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public int insertWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader)
|
|
|
- {
|
|
|
+ public int insertWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader) {
|
|
|
int rows = wmsDocAsnHeaderMapper.insertWmsDocAsnHeader(wmsDocAsnHeader);
|
|
|
insertWmsDocAsnDetails(wmsDocAsnHeader);
|
|
|
return rows;
|
|
@@ -81,14 +85,13 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
|
|
|
/**
|
|
|
* 修改入库单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param wmsDocAsnHeader 入库单
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public int updateWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader)
|
|
|
- {
|
|
|
+ public int updateWmsDocAsnHeader(WmsDocAsnHeader wmsDocAsnHeader) {
|
|
|
wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNo(wmsDocAsnHeader.getAsnNo());
|
|
|
insertWmsDocAsnDetails(wmsDocAsnHeader);
|
|
|
return wmsDocAsnHeaderMapper.updateWmsDocAsnHeader(wmsDocAsnHeader);
|
|
@@ -96,28 +99,26 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
|
|
|
/**
|
|
|
* 批量删除入库单
|
|
|
- *
|
|
|
+ *
|
|
|
* @param asnNos 需要删除的入库单主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public int deleteWmsDocAsnHeaderByAsnNos(String[] asnNos)
|
|
|
- {
|
|
|
+ public int deleteWmsDocAsnHeaderByAsnNos(String[] asnNos) {
|
|
|
wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNos(asnNos);
|
|
|
return wmsDocAsnHeaderMapper.deleteWmsDocAsnHeaderByAsnNos(asnNos);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除入库单信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param asnNo 入库单主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Transactional
|
|
|
@Override
|
|
|
- public int deleteWmsDocAsnHeaderByAsnNo(String asnNo)
|
|
|
- {
|
|
|
+ public int deleteWmsDocAsnHeaderByAsnNo(String asnNo) {
|
|
|
wmsDocAsnHeaderMapper.deleteWmsDocAsnDetailsByAsnNo(asnNo);
|
|
|
return wmsDocAsnHeaderMapper.deleteWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
}
|
|
@@ -126,7 +127,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
public int insertWmsDocAsnDetails(WmsDocAsnDetails wmsDocAsnDetails) {
|
|
|
List<WmsDocAsnDetails> detailsList = new ArrayList<>();
|
|
|
long lineNo = wmsDocAsnHeaderMapper.selectLineNo(wmsDocAsnDetails.getAsnNo());
|
|
|
- wmsDocAsnDetails.setAsnLineNo(lineNo+1);
|
|
|
+ wmsDocAsnDetails.setAsnLineNo(lineNo + 1);
|
|
|
detailsList.add(wmsDocAsnDetails);
|
|
|
return wmsDocAsnHeaderMapper.batchWmsDocAsnDetails(detailsList);
|
|
|
}
|
|
@@ -136,27 +137,49 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService
|
|
|
return wmsDocAsnHeaderMapper.selectWmsDocDetails(asnNo);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public AjaxResult doStock(StockForm stockForm) {
|
|
|
+ Long STAGE01 = 999999L;
|
|
|
+ //产品条码属于出入库单
|
|
|
+ if (stockForm.getStockTag().equals("Y") && StringUtils.isEmpty(stockForm.getOrderNo())) {
|
|
|
+ return AjaxResult.error("备货必须选择出库单号");
|
|
|
+ }
|
|
|
+ String asnNo = stockForm.getAsnNo();
|
|
|
+
|
|
|
+ WmsDocAsnHeader asnHeader = wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
+ if (asnHeader == null) {
|
|
|
+ return AjaxResult.error("入库单号不存在");
|
|
|
+ }
|
|
|
+ Map<String, BigDecimal> asnDetailsMap = new HashMap<>();
|
|
|
+ List<WmsDocAsnDetails> asnDetails = asnHeader.getWmsDocAsnDetailsList();
|
|
|
+ for (WmsDocAsnDetails w : asnDetails) {
|
|
|
+ asnDetailsMap.put(w.getSku(), w.getExpectedQty());
|
|
|
+ }
|
|
|
+ List<StockInfoForm> stockInfoForms = stockForm.getStockInfoFormList();
|
|
|
+ for (StockInfoForm s : stockInfoForms) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 新增入库单体信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param wmsDocAsnHeader 入库单对象
|
|
|
*/
|
|
|
- public void insertWmsDocAsnDetails(WmsDocAsnHeader wmsDocAsnHeader)
|
|
|
- {
|
|
|
+ public void insertWmsDocAsnDetails(WmsDocAsnHeader wmsDocAsnHeader) {
|
|
|
List<WmsDocAsnDetails> wmsDocAsnDetailsList = wmsDocAsnHeader.getWmsDocAsnDetailsList();
|
|
|
String asnNo = wmsDocAsnHeader.getAsnNo();
|
|
|
- if (StringUtils.isNotNull(wmsDocAsnDetailsList))
|
|
|
- {
|
|
|
+ if (StringUtils.isNotNull(wmsDocAsnDetailsList)) {
|
|
|
List<WmsDocAsnDetails> list = new ArrayList<WmsDocAsnDetails>();
|
|
|
- for (WmsDocAsnDetails wmsDocAsnDetails : wmsDocAsnDetailsList)
|
|
|
- {
|
|
|
+ for (WmsDocAsnDetails wmsDocAsnDetails : wmsDocAsnDetailsList) {
|
|
|
wmsDocAsnDetails.setAsnNo(asnNo);
|
|
|
wmsDocAsnDetails.setExpectedQtyEach(wmsDocAsnDetails.getExpectedQty());
|
|
|
wmsDocAsnDetails.setReceivedQtyEach(wmsDocAsnDetails.getReceivedQty());
|
|
|
list.add(wmsDocAsnDetails);
|
|
|
}
|
|
|
- if (list.size() > 0)
|
|
|
- {
|
|
|
+ if (list.size() > 0) {
|
|
|
wmsDocAsnHeaderMapper.batchWmsDocAsnDetails(list);
|
|
|
}
|
|
|
}
|