Merge branch 'master' of http://git.xdadan.loc/tanex/emis-service
This commit is contained in:
commit
f5fed5bc9f
@ -193,4 +193,30 @@ public class EmisQuotePriceController extends EmisBaseController
|
|||||||
{
|
{
|
||||||
return toAjax(emisQuotePriceService.deleteEmisQuotePriceByQuoteIds(quoteIds));
|
return toAjax(emisQuotePriceService.deleteEmisQuotePriceByQuoteIds(quoteIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 草稿导入费用报价
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('emis:emisQuotePrice:draftQuotePrice')")
|
||||||
|
@PostMapping("/draftQuotePrice")
|
||||||
|
public AjaxResult draftQuotePrice(@RequestBody EmisQuotePrice emisQuotePrice) {
|
||||||
|
JSONObject jObjOut = new JSONObject();
|
||||||
|
String result = "success";
|
||||||
|
String msg = "导入成功";
|
||||||
|
try {
|
||||||
|
emisQuotePriceService.importDraftQuotePrice(emisQuotePrice);
|
||||||
|
jObjOut.put("quoteDetail", emisQuotePrice);
|
||||||
|
} catch (EmisBizError ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
result = "fail";
|
||||||
|
msg = ex.getErrorCode() + ":" + ex.getMessage();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
result = "fail";
|
||||||
|
msg = "系统异常:" + ex.getMessage();
|
||||||
|
}
|
||||||
|
jObjOut.put("result", result);
|
||||||
|
jObjOut.put("msg", msg);
|
||||||
|
return AjaxResult.success("成功", jObjOut);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -78,4 +78,9 @@ public interface IEmisQuotePriceService
|
|||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int batchUpdateEmisQuotePrice(List<EmisQuotePrice> emisQuotePriceList) throws EmisBizError;
|
public int batchUpdateEmisQuotePrice(List<EmisQuotePrice> emisQuotePriceList) throws EmisBizError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 草稿导入费用报价,带name-code转换、规则校验、重复校验
|
||||||
|
*/
|
||||||
|
void importDraftQuotePrice(EmisQuotePrice emisQuotePrice) throws EmisBizError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,15 +14,14 @@ import java.util.Date;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.xdadan.erp.emis.domain.EmisQuoteExpression;
|
import com.xdadan.erp.common.utils.DictUtils;
|
||||||
|
import com.xdadan.erp.emis.domain.*;
|
||||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||||
import com.xdadan.erp.emis.mapper.EmisQuoteExpressionMapper;
|
import com.xdadan.erp.emis.mapper.*;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
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 com.xdadan.erp.emis.domain.EmisQuotePrice;
|
|
||||||
import com.xdadan.erp.emis.mapper.EmisQuotePriceMapper;
|
|
||||||
import com.xdadan.erp.emis.service.IEmisQuotePriceService;
|
import com.xdadan.erp.emis.service.IEmisQuotePriceService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@ -41,6 +40,18 @@ public class EmisQuotePriceServiceImpl implements IEmisQuotePriceService
|
|||||||
@Autowired
|
@Autowired
|
||||||
private EmisQuoteExpressionMapper emisQuoteExpressionMapper;
|
private EmisQuoteExpressionMapper emisQuoteExpressionMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisSiteMapper emisSiteMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisTransLineMapper emisTransLineMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisTransProductMapper emisTransProductMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmisRegionMapper emisRegionMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询费用报价
|
* 查询费用报价
|
||||||
@ -210,4 +221,191 @@ public class EmisQuotePriceServiceImpl implements IEmisQuotePriceService
|
|||||||
return successCount;
|
return successCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void importDraftQuotePrice(EmisQuotePrice emisQuotePrice) throws EmisBizError {
|
||||||
|
// 必填项校验
|
||||||
|
checkParam(emisQuotePrice);
|
||||||
|
|
||||||
|
// 校验日期
|
||||||
|
checkDate(emisQuotePrice);
|
||||||
|
|
||||||
|
// name-code转换
|
||||||
|
nameToCode(emisQuotePrice);
|
||||||
|
|
||||||
|
// 唯一性/重复校验
|
||||||
|
List<EmisQuotePrice> listOld = emisQuotePriceMapper.checkUnique(emisQuotePrice);
|
||||||
|
if (!CollectionUtil.isEmpty(listOld)) {
|
||||||
|
String estNameStr = "";
|
||||||
|
for (EmisQuotePrice item : listOld) {
|
||||||
|
estNameStr = estNameStr + item.getQuoteName() + ",";
|
||||||
|
}
|
||||||
|
throw new EmisBizError(EmisBizErrorType.EXISTS, "报价重复[" + estNameStr + "]");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存报价
|
||||||
|
insertEmisQuotePrice(emisQuotePrice);
|
||||||
|
// 保存表达式
|
||||||
|
if (!CollectionUtil.isEmpty(emisQuotePrice.getExprList())) {
|
||||||
|
for (EmisQuoteExpression expr : emisQuotePrice.getExprList()) {
|
||||||
|
expr.setId(null);
|
||||||
|
expr.setQuoteId(emisQuotePrice.getQuoteId());
|
||||||
|
emisQuoteExpressionMapper.insertEmisQuoteExpression(expr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void nameToCode(EmisQuotePrice emisQuotePrice) throws EmisBizError {
|
||||||
|
EmisSite useSite = emisSiteMapper.getEmisSiteByName(emisQuotePrice.getUseSiteName());
|
||||||
|
if (useSite == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "未找到对应的使用网点: " + emisQuotePrice.getUseSiteName());
|
||||||
|
}
|
||||||
|
emisQuotePrice.setUseSiteCode(useSite.getSiteCode());
|
||||||
|
// 线路
|
||||||
|
EmisTransLine transLine = emisTransLineMapper.selectTransLineByName(emisQuotePrice.getTransLine());
|
||||||
|
if (transLine == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "未找到对应的线路: " + emisQuotePrice.getTransLine());
|
||||||
|
}
|
||||||
|
emisQuotePrice.setTransLineCode(transLine.getLineCode());
|
||||||
|
// 产品类型
|
||||||
|
EmisTransProduct prod = emisTransProductMapper.selectTransProductByName(transLine.getLineCode(),
|
||||||
|
emisQuotePrice.getProdName());
|
||||||
|
if (prod == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "未找到对应的产品类型: " + emisQuotePrice.getProdName());
|
||||||
|
}
|
||||||
|
emisQuotePrice.setProdCode(prod.getProdCode());
|
||||||
|
// 派件区域 name-code
|
||||||
|
if (emisQuotePrice.getDispAreaName() != null && !emisQuotePrice.getDispAreaName().trim().isEmpty()) {
|
||||||
|
EmisRegion queryRegion = new EmisRegion();
|
||||||
|
queryRegion.setRegionName(emisQuotePrice.getDispAreaName());
|
||||||
|
List<EmisRegion> dispAreaList = emisRegionMapper.selectEmisRegionList(queryRegion);
|
||||||
|
if (dispAreaList == null || dispAreaList.isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "未找到对应的派件区域: " + emisQuotePrice.getDispAreaName());
|
||||||
|
}
|
||||||
|
EmisRegion dispArea = dispAreaList.get(0);
|
||||||
|
emisQuotePrice.setDispAreaId(dispArea.getId());
|
||||||
|
emisQuotePrice.setDispAreaSiteCode(dispArea.getRegionCode());
|
||||||
|
}
|
||||||
|
// 寄件区域 name-code
|
||||||
|
if (emisQuotePrice.getSendAreaName() != null && !emisQuotePrice.getSendAreaName().trim().isEmpty()) {
|
||||||
|
EmisRegion queryRegion = new EmisRegion();
|
||||||
|
queryRegion.setRegionName(emisQuotePrice.getSendAreaName());
|
||||||
|
List<EmisRegion> sendAreaList = emisRegionMapper.selectEmisRegionList(queryRegion);
|
||||||
|
if (sendAreaList == null || sendAreaList.isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "未找到对应的寄件区域: " + emisQuotePrice.getSendAreaName());
|
||||||
|
}
|
||||||
|
EmisRegion sendArea = sendAreaList.get(0);
|
||||||
|
emisQuotePrice.setSendAreaId(sendArea.getId());
|
||||||
|
emisQuotePrice.setSendAreaSiteCode(sendArea.getRegionCode());
|
||||||
|
}
|
||||||
|
// 费用类型 name-code
|
||||||
|
if (emisQuotePrice.getFeeType() != null && !emisQuotePrice.getFeeType().isEmpty()) {
|
||||||
|
String feeTypeCode = DictUtils.getDictValue("emis_fee_type", emisQuotePrice.getFeeType());
|
||||||
|
if (feeTypeCode == null || feeTypeCode.isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "费用类型无效: " + emisQuotePrice.getFeeType());
|
||||||
|
}
|
||||||
|
emisQuotePrice.setFeeType(feeTypeCode);
|
||||||
|
}
|
||||||
|
// 币种 name-code
|
||||||
|
if (emisQuotePrice.getCurrency() != null && !emisQuotePrice.getCurrency().isEmpty()) {
|
||||||
|
String currencyCode = DictUtils.getDictValue("emis_currency", emisQuotePrice.getCurrency());
|
||||||
|
if (currencyCode == null || currencyCode.isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "费用币种无效: " + emisQuotePrice.getCurrency());
|
||||||
|
}
|
||||||
|
emisQuotePrice.setCurrency(currencyCode);
|
||||||
|
}
|
||||||
|
// 计费类型 name-code
|
||||||
|
if (emisQuotePrice.getBillType() != null && !emisQuotePrice.getBillType().isEmpty()) {
|
||||||
|
String billType = emisQuotePrice.getBillType().trim();
|
||||||
|
if ("重量计费".equals(billType)) {
|
||||||
|
emisQuotePrice.setBillType("1");
|
||||||
|
} else if ("体积计费".equals(billType)) {
|
||||||
|
emisQuotePrice.setBillType("2");
|
||||||
|
} else if (!"1".equals(billType) && !"2".equals(billType)) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "计费类型无效: " + emisQuotePrice.getBillType());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 启用状态 name-code
|
||||||
|
if (emisQuotePrice.getStatus() != null) {
|
||||||
|
Object statusObj = emisQuotePrice.getStatus();
|
||||||
|
if (statusObj instanceof String) {
|
||||||
|
String statusStr = ((String) statusObj).trim();
|
||||||
|
if ("启用".equals(statusStr)) {
|
||||||
|
emisQuotePrice.setStatus(0);
|
||||||
|
} else if ("停用".equals(statusStr)) {
|
||||||
|
emisQuotePrice.setStatus(1);
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
int statusInt = Integer.parseInt(statusStr);
|
||||||
|
if (statusInt != 0 && statusInt != 1) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态无效: " + statusObj);
|
||||||
|
}
|
||||||
|
emisQuotePrice.setStatus(statusInt);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态无效: " + statusObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (statusObj instanceof Integer) {
|
||||||
|
int statusInt = (Integer) statusObj;
|
||||||
|
if (statusInt != 0 && statusInt != 1) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态无效: " + statusObj);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态无效: " + statusObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkDate(EmisQuotePrice emisQuotePrice) throws EmisBizError {
|
||||||
|
Date startDate = emisQuotePrice.getStartDate();
|
||||||
|
Date endDate = emisQuotePrice.getEndDate();
|
||||||
|
if (startDate == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "开始日期不能为空");
|
||||||
|
}
|
||||||
|
if (endDate == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "结束日期不能为空");
|
||||||
|
}
|
||||||
|
if (startDate.after(endDate)) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "开始日期不能晚于结束日期");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkParam(EmisQuotePrice emisQuotePrice) throws EmisBizError {
|
||||||
|
if (emisQuotePrice.getQuoteName() == null || emisQuotePrice.getQuoteName().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "报价名称不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getUseSiteName() == null || emisQuotePrice.getUseSiteName().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "使用网点不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getTransLine() == null || emisQuotePrice.getTransLine().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "线路不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getProdName() == null || emisQuotePrice.getProdName().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "产品类型不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getLeastPrice() == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "最低价格不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getPriceType() == null || emisQuotePrice.getPriceType().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "价格取值不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getBillType() == null || emisQuotePrice.getBillType().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "计费类型不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getStatus() == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getFeeType() == null || emisQuotePrice.getFeeType().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "费用类型不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getCurrency() == null || emisQuotePrice.getCurrency().trim().isEmpty()) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "费用币种不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getSendAreaId() == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "寄件区域不能为空");
|
||||||
|
}
|
||||||
|
if (emisQuotePrice.getDispAreaId() == null) {
|
||||||
|
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "派件区域不能为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -167,7 +167,7 @@ public class EmisSettleInvoiceChRecordServiceImpl extends EmisBaseService implem
|
|||||||
// 开票公司
|
// 开票公司
|
||||||
vo.setInvoiceCompany(InvoiceExportHelper.mapInvoiceCompany(record.getSalerCompanyName()));
|
vo.setInvoiceCompany(InvoiceExportHelper.mapInvoiceCompany(record.getSalerCompanyName()));
|
||||||
// 备注
|
// 备注
|
||||||
vo.setRemark(InvoiceExportHelper.processRemark(record));
|
vo.setRemark(record.getApplyRemark());
|
||||||
// 定制备注
|
// 定制备注
|
||||||
vo.setCustomRemark(InvoiceExportHelper.processCustomRemark(record));
|
vo.setCustomRemark(InvoiceExportHelper.processCustomRemark(record));
|
||||||
// 付款日期
|
// 付款日期
|
||||||
|
|||||||
@ -10,7 +10,10 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||||||
import com.xdadan.erp.emis.domain.*;
|
import com.xdadan.erp.emis.domain.*;
|
||||||
import com.xdadan.erp.emis.mapper.*;
|
import com.xdadan.erp.emis.mapper.*;
|
||||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||||
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||||
|
import jodd.util.StringUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -67,7 +70,19 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements
|
|||||||
@Override
|
@Override
|
||||||
public List<EmisTmsSiteBatchMiss> selectEmisTmsSiteBatchMissList(EmisTmsSiteBatchMiss emisTmsSiteBatchMiss) {
|
public List<EmisTmsSiteBatchMiss> selectEmisTmsSiteBatchMissList(EmisTmsSiteBatchMiss emisTmsSiteBatchMiss) {
|
||||||
log.info("Selecting TMS site batch miss list with params: {}", emisTmsSiteBatchMiss);
|
log.info("Selecting TMS site batch miss list with params: {}", emisTmsSiteBatchMiss);
|
||||||
return emisTmsSiteBatchMissMapper.selectEmisTmsSiteBatchMissList(emisTmsSiteBatchMiss);
|
List<EmisTmsSiteBatchMiss> list = null;
|
||||||
|
// 如果单号不为空,则去除其他参数
|
||||||
|
if(!StringUtils.isEmpty(emisTmsSiteBatchMiss.getBillCode())){
|
||||||
|
emisTmsSiteBatchMiss.setBillCode(WaybillHelper.formatQueryValue(emisTmsSiteBatchMiss.getBillCode()));
|
||||||
|
String[] billCodeSortList = emisTmsSiteBatchMiss.getBillCode().split(",");
|
||||||
|
if(billCodeSortList.length>1){
|
||||||
|
emisTmsSiteBatchMiss.getParams().put("billCodeSortList",Arrays.asList(billCodeSortList));
|
||||||
|
}
|
||||||
|
list = emisTmsSiteBatchMissMapper.selectEmisTmsSiteBatchMissList(emisTmsSiteBatchMiss);
|
||||||
|
}else{
|
||||||
|
list = emisTmsSiteBatchMissMapper.selectEmisTmsSiteBatchMissList(emisTmsSiteBatchMiss);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -13,6 +13,7 @@ package com.xdadan.erp.emis.service.impl;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.xdadan.erp.common.core.redis.RedissonService;
|
import com.xdadan.erp.common.core.redis.RedissonService;
|
||||||
@ -220,7 +221,19 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
|
|||||||
public int addAll(EmisTmsSiteBatch emisTmsSiteBatch) throws EmisBizError {
|
public int addAll(EmisTmsSiteBatch emisTmsSiteBatch) throws EmisBizError {
|
||||||
// 插入明细数据
|
// 插入明细数据
|
||||||
if (!CollectionUtils.isEmpty(emisTmsSiteBatch.getBatchDtlList())) {
|
if (!CollectionUtils.isEmpty(emisTmsSiteBatch.getBatchDtlList())) {
|
||||||
for (EmisTmsSiteBatchDtl itemDtl : emisTmsSiteBatch.getBatchDtlList()) {
|
List<EmisTmsSiteBatchDtl> distinctBatchDtlList = emisTmsSiteBatch.getBatchDtlList().stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(item -> StringUtils.isNotBlank(item.getBillCode()))
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
EmisTmsSiteBatchDtl::getBillCode,
|
||||||
|
item -> item,
|
||||||
|
(existing, replacement) -> existing
|
||||||
|
))
|
||||||
|
.values()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
for (EmisTmsSiteBatchDtl itemDtl : distinctBatchDtlList) {
|
||||||
checkSiteBatch(emisTmsSiteBatch, itemDtl.getBillCode());
|
checkSiteBatch(emisTmsSiteBatch, itemDtl.getBillCode());
|
||||||
itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo());
|
itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo());
|
||||||
emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl);
|
emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl);
|
||||||
@ -247,8 +260,20 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public int editAll(EmisTmsSiteBatch emisTmsSiteBatch) throws EmisBizError {
|
public int editAll(EmisTmsSiteBatch emisTmsSiteBatch) throws EmisBizError {
|
||||||
|
List<EmisTmsSiteBatchDtl> distinctBatchDtlList = null;
|
||||||
if (!CollectionUtils.isEmpty(emisTmsSiteBatch.getBatchDtlList())) {
|
if (!CollectionUtils.isEmpty(emisTmsSiteBatch.getBatchDtlList())) {
|
||||||
for (EmisTmsSiteBatchDtl itemDtl : emisTmsSiteBatch.getBatchDtlList()) {
|
distinctBatchDtlList = emisTmsSiteBatch.getBatchDtlList().stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(item -> StringUtils.isNotBlank(item.getBillCode()))
|
||||||
|
.collect(Collectors.toMap(
|
||||||
|
EmisTmsSiteBatchDtl::getBillCode,
|
||||||
|
item -> item,
|
||||||
|
(existing, replacement) -> existing
|
||||||
|
))
|
||||||
|
.values()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
for (EmisTmsSiteBatchDtl itemDtl : distinctBatchDtlList) {
|
||||||
checkSiteBatch(emisTmsSiteBatch, itemDtl.getBillCode());
|
checkSiteBatch(emisTmsSiteBatch, itemDtl.getBillCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,8 +283,8 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
|
|||||||
if (StringUtil.isBlank(emisTmsSiteBatch.getBatchNo())) {
|
if (StringUtil.isBlank(emisTmsSiteBatch.getBatchNo())) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (CollectionUtil.isNotEmpty(emisTmsSiteBatch.getBatchDtlList())) {
|
if (CollectionUtil.isNotEmpty(distinctBatchDtlList)) {
|
||||||
for (EmisTmsSiteBatchDtl itemDtl : emisTmsSiteBatch.getBatchDtlList()) {
|
for (EmisTmsSiteBatchDtl itemDtl : distinctBatchDtlList) {
|
||||||
itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo());
|
itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo());
|
||||||
emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl);
|
emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -164,8 +164,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
left join emis_country c2 on w.receive_country=c2.code and c2.del_flag=0
|
left join emis_country c2 on w.receive_country=c2.code and c2.del_flag=0
|
||||||
<where>
|
<where>
|
||||||
b.site_batch_status = '1'
|
b.site_batch_status = '1'
|
||||||
<if test="billCode != null and billCode != ''">
|
<if test="billCode != null and billCode != '' and ( params.billCodeSortList == null or (params.billCodeSortList != null and params.billCodeSortList.size() == 1 ) )">
|
||||||
AND w.bill_code REGEXP REPLACE(#{billCode}, '\n', '|')
|
and ( b.`bill_code`=#{billCode} or b.bill_code like concat('%',#{billCode}) )
|
||||||
|
</if>
|
||||||
|
<if test="params.billCodeSortList != null and params.billCodeSortList.size() > 1 ">
|
||||||
|
and b.bill_code in
|
||||||
|
<foreach collection="params.billCodeSortList" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="lineCode != null and lineCode != ''">
|
<if test="lineCode != null and lineCode != ''">
|
||||||
AND w.trans_line_type = #{lineCode}
|
AND w.trans_line_type = #{lineCode}
|
||||||
@ -225,8 +231,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</when>
|
</when>
|
||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
<if test="billCode != null and billCode != ''">
|
<if test="billCode != null and billCode != '' and ( params.billCodeSortList == null or (params.billCodeSortList != null and params.billCodeSortList.size() == 1 ) )">
|
||||||
AND m.bill_code REGEXP REPLACE(#{billCode}, '\n', '|')
|
and ( m.`bill_code`=#{billCode} or m.bill_code like concat('%',#{billCode}) )
|
||||||
|
</if>
|
||||||
|
<if test="params.billCodeSortList != null and params.billCodeSortList.size() > 1 ">
|
||||||
|
and m.bill_code in
|
||||||
|
<foreach collection="params.billCodeSortList" item="item" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="missReason != null and missReason != ''">
|
<if test="missReason != null and missReason != ''">
|
||||||
AND m.miss_reason like concat('%', #{missReason}, '%')
|
AND m.miss_reason like concat('%', #{missReason}, '%')
|
||||||
|
|||||||
@ -3809,14 +3809,15 @@
|
|||||||
select a.id, a.bill_code,a.trans_line_type, a.product_type,a.start_site_code,a.send_site_code
|
select a.id, a.bill_code,a.trans_line_type, a.product_type,a.start_site_code,a.send_site_code
|
||||||
from emis_waybill a
|
from emis_waybill a
|
||||||
left join emis_waybill_batch_status b on a.bill_code = b.bill_code
|
left join emis_waybill_batch_status b on a.bill_code = b.bill_code
|
||||||
where a.bl_sign = '1'
|
where a.del_flag = '0'
|
||||||
and a.del_flag = '0'
|
|
||||||
and (b.site_batch_status is null or b.site_batch_status != '1')
|
and (b.site_batch_status is null or b.site_batch_status != '1')
|
||||||
<if test="lineCode != null and lineCode != ''">
|
<if test="lineCode != null and lineCode != ''">
|
||||||
and a.trans_line_type = #{lineCode}
|
and a.trans_line_type = #{lineCode}
|
||||||
</if>
|
</if>
|
||||||
and a.send_date <![CDATA[ > ]]> '2025-01-01 00:00:00'
|
and a.send_date <![CDATA[ > ]]> '2025-01-01 00:00:00'
|
||||||
and (a.virtual_remark is null or virtual_remark = '')
|
and a.send_date <![CDATA[ <= ]]> DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
||||||
|
and (a.virtual_remark is null or virtual_remark = '' or virtual_remark = ' ')
|
||||||
|
and (a.problem_type is null or a.problem_type != 151)
|
||||||
order by a.create_time desc
|
order by a.create_time desc
|
||||||
limit #{offset}, #{pageSize}
|
limit #{offset}, #{pageSize}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user