|
@@ -1,47 +1,60 @@
|
|
|
package com.ruoyi.ams.erp.service.impl;
|
|
|
|
|
|
+import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
|
|
|
+import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
|
|
|
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
|
|
|
import com.ruoyi.ams.erp.domain.ErpBarcodes;
|
|
|
import com.ruoyi.ams.erp.mapper.ErpBarcodesMapper;
|
|
|
import com.ruoyi.ams.erp.service.IErpBarcodesService;
|
|
|
+import com.ruoyi.ams.inv.domain.InvLotAtt;
|
|
|
+import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
|
|
|
+import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
|
|
|
+import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
|
|
|
+import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
|
|
|
+import com.ruoyi.base.constant.Constant;
|
|
|
+import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 条码扫描记录表Service业务层处理
|
|
|
- *
|
|
|
+ *
|
|
|
* @author ruoyi
|
|
|
* @date 2023-03-10
|
|
|
*/
|
|
|
@Service
|
|
|
-public class ErpBarcodesServiceImpl implements IErpBarcodesService
|
|
|
-{
|
|
|
+public class ErpBarcodesServiceImpl implements IErpBarcodesService {
|
|
|
@Autowired
|
|
|
private ErpBarcodesMapper erpBarcodesMapper;
|
|
|
+ @Autowired
|
|
|
+ private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
|
|
|
+ @Autowired
|
|
|
+ private IWmsDocOrderHeaderService wmsDocOrderHeaderService;
|
|
|
|
|
|
/**
|
|
|
* 查询条码扫描记录表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id 条码扫描记录表主键
|
|
|
* @return 条码扫描记录表
|
|
|
*/
|
|
|
@Override
|
|
|
- public ErpBarcodes selectErpBarcodesById(Long id)
|
|
|
- {
|
|
|
+ public ErpBarcodes selectErpBarcodesById(Long id) {
|
|
|
return erpBarcodesMapper.selectErpBarcodesById(id);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询条码扫描记录表列表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param erpBarcodes 条码扫描记录表
|
|
|
* @return 条码扫描记录表
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<ErpBarcodes> selectErpBarcodesList(ErpBarcodes erpBarcodes)
|
|
|
- {
|
|
|
+ public List<ErpBarcodes> selectErpBarcodesList(ErpBarcodes erpBarcodes) {
|
|
|
return erpBarcodesMapper.selectErpBarcodesList(erpBarcodes);
|
|
|
}
|
|
|
|
|
@@ -52,10 +65,9 @@ public class ErpBarcodesServiceImpl implements IErpBarcodesService
|
|
|
* @return 条码扫描记录表
|
|
|
*/
|
|
|
@Override
|
|
|
- public ErpBarcodes selectErpBarcodesByModel(ErpBarcodes erpBarcodes)
|
|
|
- {
|
|
|
+ public ErpBarcodes selectErpBarcodesByModel(ErpBarcodes erpBarcodes) {
|
|
|
List<ErpBarcodes> list = erpBarcodesMapper.selectErpBarcodesList(erpBarcodes);
|
|
|
- if (list!=null && list.size()>0) {
|
|
|
+ if (list != null && list.size() > 0) {
|
|
|
return list.get(0);
|
|
|
} else {
|
|
|
return null;
|
|
@@ -64,51 +76,167 @@ public class ErpBarcodesServiceImpl implements IErpBarcodesService
|
|
|
|
|
|
/**
|
|
|
* 新增条码扫描记录表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param erpBarcodes 条码扫描记录表
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int insertErpBarcodes(ErpBarcodes erpBarcodes)
|
|
|
- {
|
|
|
+ public int insertErpBarcodes(ErpBarcodes erpBarcodes) {
|
|
|
erpBarcodes.setCreateTime(DateUtils.getNowDate());
|
|
|
return erpBarcodesMapper.insertErpBarcodes(erpBarcodes);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改条码扫描记录表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param erpBarcodes 条码扫描记录表
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int updateErpBarcodes(ErpBarcodes erpBarcodes)
|
|
|
- {
|
|
|
+ public int updateErpBarcodes(ErpBarcodes erpBarcodes) {
|
|
|
erpBarcodes.setUpdateTime(DateUtils.getNowDate());
|
|
|
return erpBarcodesMapper.updateErpBarcodes(erpBarcodes);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 修改条码扫描记录表
|
|
|
+ *
|
|
|
+ * @param erpBarcodes 条码扫描记录表
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public int updateErpBarcodesBySn(ErpBarcodes erpBarcodes) {
|
|
|
+ erpBarcodes.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ return erpBarcodesMapper.updateErpBarcodesBySn(erpBarcodes);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 批量删除条码扫描记录表
|
|
|
- *
|
|
|
+ *
|
|
|
* @param ids 需要删除的条码扫描记录表主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteErpBarcodesByIds(Long[] ids)
|
|
|
- {
|
|
|
+ public int deleteErpBarcodesByIds(Long[] ids) {
|
|
|
return erpBarcodesMapper.deleteErpBarcodesByIds(ids);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 删除条码扫描记录表信息
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id 条码扫描记录表主键
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public int deleteErpBarcodesById(Long id)
|
|
|
- {
|
|
|
+ public int deleteErpBarcodesById(Long id) {
|
|
|
return erpBarcodesMapper.deleteErpBarcodesById(id);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult recordErpBarcodeListAsn(WmsDocAsnDetails details, String sn, String locationNo
|
|
|
+ , String palletNo, BigDecimal qty, String boxNo) {
|
|
|
+ String asnNo = details.getAsnNo();
|
|
|
+ WmsDocAsnHeader wmsDocAsnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
|
|
|
+ String erpNo = wmsDocAsnHeader.getAsnReference1();
|
|
|
+ //先查一下有没有
|
|
|
+ String erpName = details.getdEdi07() == null ? "" : details.getdEdi07();
|
|
|
+ ErpBarcodes erpBarcodesS = new ErpBarcodes();
|
|
|
+ erpBarcodesS.setErpNo(erpNo);
|
|
|
+ erpBarcodesS.setErpName(erpName);
|
|
|
+ erpBarcodesS.setBarcode(sn);
|
|
|
+ ErpBarcodes erpBarcodesG = this.selectErpBarcodesByModel(erpBarcodesS);
|
|
|
+ if (erpBarcodesG != null) {
|
|
|
+ this.untieRecordErpBarcodeList(erpNo, erpName, sn);
|
|
|
+ return AjaxResult.success("");
|
|
|
+ }
|
|
|
+ // 插入新的
|
|
|
+ ErpBarcodes erpBarcodes = new ErpBarcodes();
|
|
|
+ erpBarcodes.setUserdefine4(asnNo); // WMS单号
|
|
|
+ erpBarcodes.setBarcode(sn); // 条码
|
|
|
+ erpBarcodes.setStockId(details.getdEdi05() == null ? "" : details.getdEdi05()); // 仓库编码
|
|
|
+ erpBarcodes.setLocationNo(locationNo); // 货架编号
|
|
|
+ erpBarcodes.setBoxNo(palletNo); // 托盘号
|
|
|
+ erpBarcodes.setQty(qty); // 数量
|
|
|
+ erpBarcodes.setType(details.getdEdi09() == null ? "" : details.getdEdi09()); // 出入库类型
|
|
|
+ erpBarcodes.setErpNo(erpNo); // ERP单号
|
|
|
+ erpBarcodes.setErpName(details.getdEdi07() == null ? "" : details.getdEdi07());
|
|
|
+ erpBarcodes.setUserdefine7(details.getdEdi08() == null ? "" : details.getdEdi08()); // ERP单据类型
|
|
|
+ erpBarcodes.setUserdefine5(boxNo); // 箱号
|
|
|
+ erpBarcodes.setUserdefine3(details.getdEdi11() == null ? "" : details.getdEdi11()); // 人员
|
|
|
+ erpBarcodes.setUserdefine2(DateUtils.getTime());
|
|
|
+ erpBarcodes.setUserdefine1("Y"); // 状态(扫描记录是否有效)
|
|
|
+ erpBarcodes.setUserdefine8("N"); // 回传ERP标识
|
|
|
+ this.insertErpBarcodes(erpBarcodes);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult recordErpBarcodeListSo(WmsDocOrderDetails details, String sn, String locationNo
|
|
|
+ , String palletNo, BigDecimal qty, String boxNo) {
|
|
|
+ String orderNo = details.getOrderNo();
|
|
|
+ WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectDocOrderHeaderByOrderNo(orderNo);
|
|
|
+ String erpNo = wmsDocOrderHeader.getSoReference1();
|
|
|
+ //先查一下有没有
|
|
|
+ String erpName = details.getdEdi07() == null ? "" : details.getdEdi07();
|
|
|
+ if (StringUtils.isEmpty(erpName)) {
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ ErpBarcodes erpBarcodesS = new ErpBarcodes();
|
|
|
+ erpBarcodesS.setErpNo(erpNo);
|
|
|
+ erpBarcodesS.setErpName(erpName);
|
|
|
+ erpBarcodesS.setBarcode(sn);
|
|
|
+ ErpBarcodes erpBarcodesG = this.selectErpBarcodesByModel(erpBarcodesS);
|
|
|
+ if (erpBarcodesG != null) {
|
|
|
+ this.untieRecordErpBarcodeList(erpNo, erpName, sn);
|
|
|
+ return AjaxResult.success("");
|
|
|
+ }
|
|
|
+ ErpBarcodes erpBarcodes = new ErpBarcodes();
|
|
|
+ erpBarcodes.setUserdefine4(orderNo); // WMS单号
|
|
|
+ erpBarcodes.setBarcode(sn); // 条码
|
|
|
+ erpBarcodes.setStockId(details.getdEdi05() == null ? "" : details.getdEdi05()); // 仓库编码
|
|
|
+ erpBarcodes.setLocationNo(locationNo); // 货架编号
|
|
|
+ erpBarcodes.setBoxNo(palletNo); // 托盘号
|
|
|
+ erpBarcodes.setQty(qty); // 数量
|
|
|
+ erpBarcodes.setType(details.getdEdi09() == null ? "" : details.getdEdi09()); // 出入库类型
|
|
|
+ erpBarcodes.setErpNo(erpNo); // ERP单号
|
|
|
+ erpBarcodes.setErpName(details.getdEdi07() == null ? "" : details.getdEdi07());
|
|
|
+ erpBarcodes.setUserdefine7(details.getdEdi08() == null ? "" : details.getdEdi08()); // ERP单据类型
|
|
|
+ erpBarcodes.setUserdefine5(boxNo); // 箱号
|
|
|
+ erpBarcodes.setUserdefine3(details.getdEdi11() == null ? "" : details.getdEdi11()); // 人员
|
|
|
+ erpBarcodes.setUserdefine2(DateUtils.getTime());
|
|
|
+ erpBarcodes.setUserdefine1("Y"); // 状态(扫描记录是否有效)
|
|
|
+ erpBarcodes.setUserdefine8("N"); // 回传ERP标识
|
|
|
+ this.insertErpBarcodes(erpBarcodes);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private AjaxResult untieRecordErpBarcodeList(String erpNo, String erpName, String sn) {
|
|
|
+ if (StringUtils.isEmpty(erpName)) {
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ ErpBarcodes erpBarcodes = new ErpBarcodes();
|
|
|
+ erpBarcodes.setErpNo(erpNo);
|
|
|
+ erpBarcodes.setErpName(erpName);
|
|
|
+ erpBarcodes.setBarcode(sn);
|
|
|
+ erpBarcodes.setUserdefine1("Y");
|
|
|
+ erpBarcodes.setUserdefine8("N");
|
|
|
+ this.updateErpBarcodesBySn(erpBarcodes);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AjaxResult untieRecordErpBarcodeListAsnSo(String erpNo, String erpName, String sn) {
|
|
|
+ if (StringUtils.isEmpty(erpName)) {
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ ErpBarcodes erpBarcodes = new ErpBarcodes();
|
|
|
+ erpBarcodes.setErpNo(erpNo);
|
|
|
+ erpBarcodes.setErpName(erpName);
|
|
|
+ erpBarcodes.setBarcode(sn);
|
|
|
+ erpBarcodes.setUserdefine1("N");
|
|
|
+ erpBarcodes.setUserdefine8("N");
|
|
|
+ this.updateErpBarcodesBySn(erpBarcodes);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
}
|