diff --git a/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java b/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java
index b140cb5d..aef54fbe 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java
@@ -99,6 +99,11 @@ public class CoDelController {
return R.ok();
}
+ @PostMapping("/recoverEcssDelHeader")
+ public R recoverEcssDelHeader(@RequestBody EcssCoDelNotifyHeaderData data) {
+ coDelService.recoverEcssDelHeader(data);
+ return R.ok();
+ }
@PostMapping("/changeEcssDelStatus")
public R changeEcssDelStatus(@RequestBody EcssCoDelNotifyHeaderData data) {
diff --git a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
index 6f6df54a..a75f8591 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
@@ -50,6 +50,7 @@ public interface CoDelMapper {
void changeEcssDelStatus(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetailForModify(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetailStatus(EcssCoDelNotifyHeaderData data);
+ void recoverEcssDelDetailStatus(EcssCoDelNotifyHeaderData data);
int getEcssDelDetailItemNo(EcssCoDelNotifyDetail data);
void insertEcssDelDetail(EcssCoDelNotifyDetail data);
diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java b/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java
index ea872678..5067d904 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java
@@ -32,6 +32,8 @@ public interface CoDelService {
void cancelEcssDelHeader(EcssCoDelNotifyHeaderData data);
+ void recoverEcssDelHeader(EcssCoDelNotifyHeaderData data);
+
void changeEcssDelStatus(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetail(EcssCoDelNotifyDetailData data);
diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
index 8f5211b3..55332d11 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
@@ -445,6 +445,26 @@ public class CoDelServiceImpl implements CoDelService {
}
}
+ @Override
+ @Transactional
+ public void recoverEcssDelHeader(EcssCoDelNotifyHeaderData data) {
+ data.setNotifyStatus("已计划");
+ coDelMapper.changeEcssDelStatus(data);
+ // 恢复明细状态为正常
+ coDelMapper.recoverEcssDelDetailStatus(data);
+ // 取消废弃 通知仓库和单证人员
+ //设置邮件内容
+ String text = "" + "
发货通知单" +data.getDelNo()+"【发票:"+
+ data.getCmcInvoice()+"】取消废弃,恢复正常" + "
";
+ String textHead = data.getCmcInvoice()+"【发票:"+ data.getCmcInvoice()+"】取消废弃";
+ String[] mailAddress = coDelMapper.queryUsersByRoleName("关务仓库",data.getSite()).stream().map(SysUserEntity::getEmail).toArray(String[]::new);
+ String[] mailAddress2 = new String[]{coDelMapper.queryByUserName(data.getCreateBy()).getEmail()};
+ String[] mailAddressAll = ArrayUtils.addAll(mailAddress, mailAddress2);
+ if (mailAddressAll.length>0) {
+ sendMailUtil(textHead, text,mailAddressAll, data);
+ }
+ }
+
private String getStringCellValue(XSSFRow row, int columnIndex) {
Cell cell = row.getCell(columnIndex);
if (cell == null || cell.getCellType() == CellType.BLANK) {
@@ -660,11 +680,14 @@ public class CoDelServiceImpl implements CoDelService {
} catch (Exception e) {
throw new RuntimeException("导入失败:" + e.getMessage());
}
- for (EcssCoDelNotifyData data:excelList) {
- if (!inData.getCmcInvoice().equals(data.getCmcInvoice())) {
- throw new RuntimeException("导入失败:Excel中存在与发货通知单["+inData.getCmcInvoice()+"]不一致的发票号");
- }
+ // 过滤掉发票号不一致的数据
+ excelList.removeIf(data -> !inData.getCmcInvoice().equals(data.getCmcInvoice()));
+
+ // 检查过滤后是否还有数据
+ if (excelList.isEmpty()) {
+ throw new RuntimeException("导入失败:Excel中没有与发货通知单["+inData.getCmcInvoice()+"]一致的发票号数据");
}
+
List notifyHeader = coDelMapper.checkIfHasHeader(excelList.get(0).getCmcInvoice());
EcssCoDelNotifyHeaderData headerData;
if (notifyHeader.isEmpty()) {
@@ -1604,38 +1627,38 @@ public class CoDelServiceImpl implements CoDelService {
XSSFWorkbook workbook = null;
try {
ExcelTemplate template = ExcelTemplate.load(new ClassPathResource(xlsx).getInputStream());
-
+
// 第一个sheet - 出口货物委托书
extractedExportGoods(data, template);
workbook = template.render(0);
-
+
// 第二个sheet - 发票
template.clearAll();
extractedInvoice(data, template, notifyHeader);
template.render(1);
-
+
// 第三个sheet - 箱单
template.clearAll();
exportPackingList(data, template, notifyHeader, 0);
template.render(2);
-
+
// 第四个sheet - 报关单
template.clearAll();
extractedDeclaration(data, template);
template.render(3);
-
+
// 第五个sheet - 申报要素
template.clearAll();
extractedElements(data, template);
template.render(4);
-
+
// 第六个sheet - 合同 (仅特定BU需要)
if (notifyHeader.getBuNo().equals("04-MHM") || notifyHeader.getBuNo().equals("02-Hardtag")) {
template.clearAll();
extractedContract(data, template);
template.render(5);
}
-
+
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=\"单证信息.xlsx\"");
workbook.write(response.getOutputStream());
@@ -2035,7 +2058,7 @@ public class CoDelServiceImpl implements CoDelService {
if (!palletHeaderDataList.isEmpty()) {
plt = "PLT";
} else {
- totalPlt = totalQty;
+ totalPlt = totalCartons.setScale(0, RoundingMode.HALF_UP).intValue();
}
template.addVar("total_plt", totalPlt+plt);
template.addVar("total:", "total:");
diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml
index 57520e50..e6e3eb69 100644
--- a/src/main/resources/mapper/ecss/CoDelMapper.xml
+++ b/src/main/resources/mapper/ecss/CoDelMapper.xml
@@ -58,7 +58,7 @@
AND a.notify_status = #{query.notifyStatus}
- AND a.notify_status != '已计划' AND a.notify_status != '订单取消'
+ AND a.notify_status != '已计划'
AND a.ready_date>= #{query.startDate}
@@ -232,6 +232,12 @@
where site=#{site} and delNo=#{delNo}
+
+ update ecss_CoDelNotifyDetail
+ set status='正常'
+ where site=#{site} and delNo=#{delNo}
+
+