Merge pull request 'develop' (#175) from develop into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/175
This commit is contained in:
heyu 2025-09-03 15:05:58 +08:00
commit 18612b7779
5 changed files with 90 additions and 22 deletions

View File

@ -1,11 +1,11 @@
/**
/**
* @Project: emis
* @Title: EmisWaybillAjustApplyController.java
* @author linfso
* @date 2024-06-25 23:39:28
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @version v1.0
* @Description: <p> 运单调整申请 控制器 </p>
*/
@ -44,7 +44,7 @@ import com.xdadan.erp.emis.service.IEmisWaybillAjustApplyService;
/**
* 运单调整申请Controller
*
*
* @author linfso
* @date 2024-06-25 23:39:28
*/
@ -78,6 +78,9 @@ public class EmisWaybillAjustApplyController extends EmisBaseController
}
}
if("88888".equals(emisWaybillAjustApply.getApplySiteCode())){
emisWaybillAjustApply.setApplySiteCode(null);
}
List<EmisWaybillAjustApply> list = emisWaybillAjustApplyService.selectEmisWaybillAjustApplyList(emisWaybillAjustApply);
return getDataTable(list);
}
@ -85,8 +88,8 @@ public class EmisWaybillAjustApplyController extends EmisBaseController
/**
* 检查是否重复
*
* @param emisWaybillAjustApply
*
* @param emisWaybillAjustApply
* @return 数量
*/
@PreAuthorize("@ss.hasPermi('emis:emisWaybillAjustApply:list')")

View File

@ -14,6 +14,7 @@ package com.xdadan.erp.web.emis;
import java.io.*;
import java.nio.charset.Charset;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@ -34,6 +35,7 @@ import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.ScanStatInfoDtl;
import com.xdadan.erp.emis.domain.vo.*;
import com.xdadan.erp.emis.mapper.EmisWaybillMapper;
import com.xdadan.erp.emis.mapper.EmisWaybillProblemInfoMapper;
import com.xdadan.erp.emis.service.*;
import com.xdadan.erp.emis.service.print.IXddTplPrint;
import com.xdadan.erp.emis.service.print.cpcl.CvtTplToCpcl;
@ -105,6 +107,9 @@ public class EmisWaybillController extends EmisBaseController
@Autowired
private EmisWaybillMapper emisWaybillMapper;
@Autowired
private EmisWaybillProblemInfoMapper emisWaybillProblemInfoMapper;
@GetMapping(value = "/checkWaybillIsExists")
public AjaxResult checkWaybillIsExists(String billCode){
@ -1476,17 +1481,35 @@ public class EmisWaybillController extends EmisBaseController
List<JSONObject> successList = new ArrayList<>();
List<JSONObject> failList = new ArrayList<>();
// 批量查询所有运单的延迟天数
List<String> billCodes = waybillList.stream()
.map(EmisWaybill::getBillCode)
.collect(Collectors.toList());
List<Map<String, Object>> delayDaysList = emisWaybillProblemInfoMapper
.selectWaybillTotalDelayDays(billCodes);
Map<String, Integer> billCodeToDelayDaysMap = new HashMap<>();
for (Map<String, Object> delayInfo : delayDaysList) {
String billCode = (String) delayInfo.get("billCode");
Integer totalDelayDays = ((Number) delayInfo.get("totalDelayDays")).intValue();
billCodeToDelayDaysMap.put(billCode, totalDelayDays);
}
for (EmisWaybill waybill : waybillList) {
try {
// 获取该运单的总延迟天数
Integer otherAddDay = billCodeToDelayDaysMap.getOrDefault(waybill.getBillCode(), 0);
// 重新计算预估到达时间
Date newEstimateDate = emisBaseService.getEstimateDate(
waybill.getSendDate(),
waybill.getProductType(),
waybill.getSendCountry(),
waybill.getReceiveCountry(),
0);
otherAddDay);
// 只更新estimateDate字段
// 只更新estimateDate字段
EmisWaybill updateWaybill = new EmisWaybill();
updateWaybill.setId(waybill.getId());
updateWaybill.setEstimateDate(newEstimateDate);
@ -1508,6 +1531,7 @@ public class EmisWaybillController extends EmisBaseController
failList.add(failItem);
log.error("运单{}预估到达时间更新失败: {}", waybill.getBillCode(), ex.getMessage());
}
}

View File

@ -1,16 +1,18 @@
/**
/**
* @Project: emis
* @Title: EmisWaybillProblemInfoMapper.java
* @author linfso
* @date 2024-03-01 08:55:01
* @Copyright: ShangHai Doitinfo 2022 All rights reserved.
* @version v1.0
* @version v1.0
* @Description: <p> 问题件 Mapper 接口 </p>
* <span style='color:red'> Warning : This file is generate by ai tools,don't edit!!! </span>
*/
package com.xdadan.erp.emis.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xdadan.erp.emis.domain.EmisWaybillProblemInfo;
import org.apache.ibatis.annotations.Param;
@ -26,7 +28,7 @@ public interface EmisWaybillProblemInfoMapper extends BaseMapper<EmisWaybillProb
/**
* 主键查询
* @param id
* @return
* @return
*/
public EmisWaybillProblemInfo selectEmisWaybillProblemInfoById(Long id);
@ -43,31 +45,31 @@ public interface EmisWaybillProblemInfoMapper extends BaseMapper<EmisWaybillProb
/**
* 查询列表
*
* @param emisWaybillProblemInfo
*
* @param emisWaybillProblemInfo
* @return 集合
*/
public List<EmisWaybillProblemInfo> selectEmisWaybillProblemInfoList(EmisWaybillProblemInfo emisWaybillProblemInfo);
/**
* 新增
*
* 新增
*
* @param emisWaybillProblemInfo
* @return
* @return
*/
public int insertEmisWaybillProblemInfo(EmisWaybillProblemInfo emisWaybillProblemInfo);
/**
* 修改
*
* @param emisWaybillProblemInfo
* @return
*
* @param emisWaybillProblemInfo
* @return
*/
public int updateEmisWaybillProblemInfo(EmisWaybillProblemInfo emisWaybillProblemInfo);
/**
* 删除
*
*
* @param id 主键
* @return 结果
*/
@ -75,7 +77,7 @@ public interface EmisWaybillProblemInfoMapper extends BaseMapper<EmisWaybillProb
/**
* 批量删除
*
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
@ -103,4 +105,12 @@ public interface EmisWaybillProblemInfoMapper extends BaseMapper<EmisWaybillProb
* @return
*/
List<EmisWaybillProblemInfo> selectEmisWaybillProblemInfoByBillCodes(@Param("billCodes") List<String> billCodes);
/**
* 根据运单号列表统计每个运单的总延迟天数
*
* @param billCodes 运单号列表
* @return 运单号与总延迟天数的映射
*/
List<Map<String, Object>> selectWaybillTotalDelayDays(@Param("billCodes") List<String> billCodes);
}

View File

@ -2707,11 +2707,27 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
// 查询运单的延迟天数
Integer otherAddDay = 0;
if (!StringUtils.isEmpty(emisWaybillSave.getBillCode())) {
List<String> billCodes = Arrays.asList(emisWaybillSave.getBillCode());
List<Map<String, Object>> delayDaysList = emisWaybillProblemInfoMapper
.selectWaybillTotalDelayDays(billCodes);
if (!delayDaysList.isEmpty()) {
Map<String, Object> delayInfo = delayDaysList.get(0);
otherAddDay = ((Number) delayInfo.get("totalDelayDays")).intValue();
}
}
// 开单当天不算时效
Date estDate = getEstimateDate(
emisWaybillSave.getSendDate(),emisWaybillSave.getProductType(),
emisWaybillSave.getSendDate(), emisWaybillSave.getProductType(),
emisWaybillSave.getSendCountry(),
emisWaybillSave.getReceiveCountry(),0);
emisWaybillSave.getReceiveCountry(), otherAddDay);
// 预计到达时间
log.info("预估到达时间==>" + DateUtils.dateTime(estDate));
emisWaybillSave.setEstimateDate(estDate);
// 预计到达时间
log.info("预估到达时间==>"+ DateUtils.dateTime(estDate));

View File

@ -279,4 +279,19 @@
#{id}
</foreach>
</delete>
<!-- 根据运单号列表统计每个运单的总延迟天数 -->
<select id="selectWaybillTotalDelayDays" parameterType="list" resultType="map">
SELECT
wpi.bill_code as billCode,
COALESCE(SUM(pt.delay_day), 0) as totalDelayDays
FROM emis_waybill_problem_info wpi
LEFT JOIN emis_problem_type pt ON wpi.problem_type = pt.id AND pt.del_flag = '0'
WHERE wpi.del_flag = '0'
AND wpi.bill_code IN
<foreach item="billCode" collection="billCodes" open="(" separator="," close=")">
#{billCode}
</foreach>
GROUP BY wpi.bill_code
</select>
</mapper>