diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchLogController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchLogController.java new file mode 100644 index 000000000..d722840cd --- /dev/null +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsSiteBatchLogController.java @@ -0,0 +1,135 @@ +/** + * @Project: emis + * @Title: EmisTmsSiteBatchLogController.java + * @author heyu + * @date 2025-07-30 15:55:57 + * @Copyright: ShangHai Duta 2022 All rights reserved. + * @version v1.0 + * @Description:

TMS站点批次操作日志 控制器

+ */ + +package com.xdadan.erp.web.emis; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.xdadan.erp.common.annotation.Log; +import com.xdadan.erp.common.core.controller.BaseController; +import com.xdadan.erp.common.core.domain.AjaxResult; +import com.xdadan.erp.common.core.page.TableDataInfo; +import com.xdadan.erp.common.enums.BusinessType; +import com.xdadan.erp.common.utils.StringUtils; +import com.xdadan.erp.common.utils.poi.ExcelUtil; + +import com.xdadan.erp.emis.domain.EmisTmsSiteBatchLog; +import com.xdadan.erp.emis.service.IEmisTmsSiteBatchLogService; + +/** + * TMS站点批次操作日志Controller + * + * @author heyu + * @date 2025-07-30 15:55:57 + */ +@RestController +@RequestMapping("/emis/emisTmsSiteBatchLog") +public class EmisTmsSiteBatchLogController extends BaseController { + @Autowired + private IEmisTmsSiteBatchLogService emisTmsSiteBatchLogService; + + /** + * 获取操作记录 + * + * @param batchNo + * @return + */ + @GetMapping("/getTmsSiteBatchLogList") + public TableDataInfo getTmsSiteBatchLogList(String batchNo) { + List list = emisTmsSiteBatchLogService.selectListByBatchNo(batchNo); + return getDataTable(list); + } + + /** + * 查询TMS站点批次操作日志列表 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:list')") + @GetMapping("/list") + public TableDataInfo list(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + startPage(); + List list = emisTmsSiteBatchLogService.selectEmisTmsSiteBatchLogList(emisTmsSiteBatchLog); + return getDataTable(list); + } + + /** + * 检查是否重复 + * + * @param emisTmsSiteBatchLog + * @return 数量 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:list')") + @GetMapping("/checkUnique") + public AjaxResult checkUnique(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + int cnt = emisTmsSiteBatchLogService.checkUnique(emisTmsSiteBatchLog); + return AjaxResult.success("检查成功", cnt); + } + + /** + * 导出TMS站点批次操作日志列表 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:export')") + @Log(title = "TMS站点批次操作日志", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + List list = emisTmsSiteBatchLogService.selectEmisTmsSiteBatchLogList(emisTmsSiteBatchLog); + ExcelUtil util = new ExcelUtil(EmisTmsSiteBatchLog.class); + util.exportExcel(response, list, "TMS站点批次操作日志数据"); + } + + /** + * 获取TMS站点批次操作日志详细信息 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(emisTmsSiteBatchLogService.selectEmisTmsSiteBatchLogById(id)); + } + + /** + * 新增TMS站点批次操作日志 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:add')") + @Log(title = "TMS站点批次操作日志", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return toAjax(emisTmsSiteBatchLogService.insertEmisTmsSiteBatchLog(emisTmsSiteBatchLog)); + } + + /** + * 修改TMS站点批次操作日志 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:edit')") + @Log(title = "TMS站点批次操作日志", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return toAjax(emisTmsSiteBatchLogService.updateEmisTmsSiteBatchLog(emisTmsSiteBatchLog)); + } + + /** + * 删除TMS站点批次操作日志 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTmsSiteBatchLog:remove')") + @Log(title = "TMS站点批次操作日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(emisTmsSiteBatchLogService.deleteEmisTmsSiteBatchLogByIds(ids)); + } +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchLog.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchLog.java new file mode 100644 index 000000000..f6a9f0e6d --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchLog.java @@ -0,0 +1,53 @@ +/** + * @Project: emis + * @Title: EmisTmsSiteBatchLog.java + * @author heyu + * @date 2025-07-30 15:55:57 + * @Copyright: ShangHai Duta 2022 All rights reserved. + * @version v1.0 + * @Description:

TMS站点批次操作日志 实体类

+ */ + +package com.xdadan.erp.emis.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.xdadan.erp.common.annotation.Excel; +import com.xdadan.erp.common.core.domain.BaseEntity; +import com.xdadan.erp.common.core.domain.TreeEntity; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +/** + * @ClassName EmisTmsSiteBatchLog + * @Description TMS站点批次操作日志 + * @author heyu + * @date 2025-07-30 15:55:57 + */ +@Data +public class EmisTmsSiteBatchLog extends BaseEntity { + private static final long serialVersionUID = 1L; + + /* id */ + private Long id; + /* 批次号 */ + private String batchNo; + /* 操作类型 1-新增运单 2-删除运单 */ + private String opType; + /* 操作时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date opDate; + /* 操作人 */ + private String opManCode; + /* 操作名 */ + private String opMan; + /* 操作站点 */ + private String opSiteCode; + /* 操作站点名称 */ + private String opSiteName; + /* 操作日志信息 */ + private String opDesc; +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/TmsSiteBatchLogType.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/TmsSiteBatchLogType.java new file mode 100644 index 000000000..963622f13 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/enumtype/TmsSiteBatchLogType.java @@ -0,0 +1,19 @@ +package com.xdadan.erp.emis.domain.enumtype; + +/** + * TMS站点批次操作日志类型 + * TMS site batch operate log type + */ +public enum TmsSiteBatchLogType { + + BATCH_CREATE("1", "新增运单"), + BATCH_DELETE("2", "删除运单"); + + public String opType; + public String opName; + + TmsSiteBatchLogType(String opType, String opName) { + this.opType = opType; + this.opName = opName; + } +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java index 311c82d86..803cfd10a 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java @@ -86,4 +86,12 @@ public interface EmisTmsSiteBatchDtlMapper extends BaseMapper selectEmisTmsSiteBatchDtlByBatchNo(@Param("batchNo") String batchNo); + } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchLogMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchLogMapper.java new file mode 100644 index 000000000..f646f0fb7 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchLogMapper.java @@ -0,0 +1,85 @@ +/** + * @Project: emis + * @Title: EmisTmsSiteBatchLogMapper.java + * @author heyu + * @date 2025-07-30 15:55:57 + * @Copyright: ShangHai Doitinfo 2022 All rights reserved. + * @version v1.0 + * @Description:

TMS站点批次操作日志 Mapper 接口

+ * Warning : This file is generate by ai tools,don't edit!!! + */ +package com.xdadan.erp.emis.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xdadan.erp.emis.domain.EmisTmsSiteBatchLog; +import org.apache.ibatis.annotations.Param; + +/** + * @ClassName EmisTmsSiteBatchLogMapper + * @Description + *

+ * TMS站点批次操作日志 Mapper 接口 + *

+ * @author heyu + * @date 2025-07-30 15:55:57 + */ +public interface EmisTmsSiteBatchLogMapper extends BaseMapper { + /** + * 主键查询 + * + * @param id + * @return + */ + public EmisTmsSiteBatchLog selectEmisTmsSiteBatchLogById(Long id); + + /** + * 查询列表 + * + * @param emisTmsSiteBatchLog + * @return 集合 + */ + public List selectEmisTmsSiteBatchLogList(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + public List selectListByBatchNo(@Param("batchNo") String batchNo); + + /** + * 检查是否重复 + * + * @param emisTmsSiteBatchLog + * @return 数量 + */ + public int checkUnique(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 新增 + * + * @param emisTmsSiteBatchLog + * @return + */ + public int insertEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 修改 + * + * @param emisTmsSiteBatchLog + * @return + */ + public int updateEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 删除 + * + * @param id 主键 + * @return 结果 + */ + public int deleteEmisTmsSiteBatchLogById(Long id); + + /** + * 批量删除 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEmisTmsSiteBatchLogByIds(Long[] ids); +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java index 6b74fe6e6..33cb76898 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java @@ -96,6 +96,7 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper * @param ids 需要删除的数据主键集合 * @return 结果 */ + @DataAuditLog(operateType= OperateType.DELETE,serviceClass= EmisTmsSiteBatchServiceImpl.class) public int deleteEmisTmsSiteBatchByIds(Long[] ids); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchLogService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchLogService.java new file mode 100644 index 000000000..ee007d8a4 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchLogService.java @@ -0,0 +1,79 @@ +/** +* @Project: emis +* @Title: IEmisTmsSiteBatchLogService.java +* @author heyu +* @date 2025-07-30 15:55:57 +* @Copyright: ShangHai Duta 2022 All rights reserved. +* @version v1.0 +* @Description:

TMS站点批次操作日志 服务类接口

+*/ +package com.xdadan.erp.emis.service; + +import java.util.List; +import com.xdadan.erp.emis.domain.EmisTmsSiteBatchLog; + +/** + * @ClassName IEmisTmsSiteBatchLogService + * @Description TMS站点批次操作日志 + * @author heyu + * @date 2025-07-30 15:55:57 + */ +public interface IEmisTmsSiteBatchLogService { + /** + * 主键查询 + * + * @param id + * @return + */ + public EmisTmsSiteBatchLog selectEmisTmsSiteBatchLogById(Long id); + + /** + * 查询TMS站点批次操作日志列表 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return TMS站点批次操作日志集合 + */ + public List selectEmisTmsSiteBatchLogList(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + public List selectListByBatchNo(String batchNo); + + /** + * 检查是否重复 + * + * @param emisTmsSiteBatchLog + * @return 数量 + */ + public int checkUnique(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 新增TMS站点批次操作日志 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return 结果 + */ + public int insertEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 修改TMS站点批次操作日志 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return 结果 + */ + public int updateEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog); + + /** + * 批量删除TMS站点批次操作日志 + * + * @param ids 需要删除的TMS站点批次操作日志主键集合 + * @return 结果 + */ + public int deleteEmisTmsSiteBatchLogByIds(Long[] ids); + + /** + * 删除TMS站点批次操作日志信息 + * + * @param id TMS站点批次操作日志主键 + * @return 结果 + */ + public int deleteEmisTmsSiteBatchLogById(Long id); +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchLogServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchLogServiceImpl.java new file mode 100644 index 000000000..a8f212e11 --- /dev/null +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchLogServiceImpl.java @@ -0,0 +1,113 @@ +/** +* @Project: emis +* @Title: EmisTmsSiteBatchLogServiceImpl.java +* @author heyu +* @date 2025-07-30 15:55:57 +* @Copyright: ShangHai Duta 2022 All rights reserved. +* @version v1.0 +* @Description:

TMS站点批次操作日志 实体类

+*/ + +package com.xdadan.erp.emis.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.xdadan.erp.emis.domain.EmisTmsSiteBatchLog; +import com.xdadan.erp.emis.mapper.EmisTmsSiteBatchLogMapper; +import com.xdadan.erp.emis.service.IEmisTmsSiteBatchLogService; + +/** + * TMS站点批次操作日志Service业务层处理 + * + * @author heyu + * @date 2025-07-30 15:55:57 + */ +@Service +public class EmisTmsSiteBatchLogServiceImpl implements IEmisTmsSiteBatchLogService { + @Autowired + private EmisTmsSiteBatchLogMapper emisTmsSiteBatchLogMapper; + + /** + * 查询TMS站点批次操作日志 + * + * @param id TMS站点批次操作日志主键 + * @return TMS站点批次操作日志 + */ + @Override + public EmisTmsSiteBatchLog selectEmisTmsSiteBatchLogById(Long id) { + return emisTmsSiteBatchLogMapper.selectEmisTmsSiteBatchLogById(id); + } + + /** + * 查询TMS站点批次操作日志列表 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return TMS站点批次操作日志 + */ + @Override + public List selectEmisTmsSiteBatchLogList(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return emisTmsSiteBatchLogMapper.selectEmisTmsSiteBatchLogList(emisTmsSiteBatchLog); + } + + @Override + public List selectListByBatchNo(String batchNo) { + return emisTmsSiteBatchLogMapper.selectListByBatchNo(batchNo); + } + + /** + * 检查是否重复 + * + * @param emisTmsSiteBatchLog + * @return 数量 + */ + @Override + public int checkUnique(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return emisTmsSiteBatchLogMapper.checkUnique(emisTmsSiteBatchLog); + } + + /** + * 新增TMS站点批次操作日志 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return 结果 + */ + @Override + public int insertEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return emisTmsSiteBatchLogMapper.insertEmisTmsSiteBatchLog(emisTmsSiteBatchLog); + } + + /** + * 修改TMS站点批次操作日志 + * + * @param emisTmsSiteBatchLog TMS站点批次操作日志 + * @return 结果 + */ + @Override + public int updateEmisTmsSiteBatchLog(EmisTmsSiteBatchLog emisTmsSiteBatchLog) { + return emisTmsSiteBatchLogMapper.updateEmisTmsSiteBatchLog(emisTmsSiteBatchLog); + } + + /** + * 批量删除TMS站点批次操作日志 + * + * @param ids 需要删除的TMS站点批次操作日志主键 + * @return 结果 + */ + @Override + public int deleteEmisTmsSiteBatchLogByIds(Long[] ids) { + return emisTmsSiteBatchLogMapper.deleteEmisTmsSiteBatchLogByIds(ids); + } + + /** + * 删除TMS站点批次操作日志信息 + * + * @param id TMS站点批次操作日志主键 + * @return 结果 + */ + @Override + public int deleteEmisTmsSiteBatchLogById(Long id) { + return emisTmsSiteBatchLogMapper.deleteEmisTmsSiteBatchLogById(id); + } + +} \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java index 20f9dbc88..8b6528c50 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java @@ -10,10 +10,9 @@ package com.xdadan.erp.emis.service.impl; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; +import java.util.ArrayList; import cn.hutool.core.collection.CollectionUtil; import com.xdadan.erp.common.core.redis.RedissonService; @@ -25,7 +24,10 @@ import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.mapper.EmisTmsSiteBatchDtlMapper; import com.xdadan.erp.emis.mapper.EmisTmsSiteBatchLoadingMapper; import com.xdadan.erp.emis.mapper.EmisTransPlanRuleMapper; +import com.xdadan.erp.emis.mapper.EmisTmsSiteBatchLogMapper; +import com.xdadan.erp.emis.mapper.EmisWaybillMapper; import com.xdadan.erp.emis.service.EmisBaseService; +import com.xdadan.erp.emis.service.IEmisTmsSiteBatchDtlService; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -62,8 +64,15 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi @Autowired private EmisTransPlanRuleMapper emisTransPlanRuleMapper; + @Autowired + private EmisTmsSiteBatchLogMapper emisTmsSiteBatchLogMapper; + + @Autowired + private EmisWaybillMapper emisWaybillMapper; + /** * 获取稽核数据 + * * @param id * @return */ @@ -251,8 +260,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi .collect(Collectors.toMap( EmisTmsSiteBatchDtl::getBillCode, item -> item, - (existing, replacement) -> existing - )) + (existing, replacement) -> existing)) .values() .stream() .collect(Collectors.toList()); @@ -262,6 +270,10 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo()); emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl); } + List billCodes = distinctBatchDtlList.stream().map(EmisTmsSiteBatchDtl::getBillCode).distinct().collect(Collectors.toList()); + if(CollectionUtil.isNotEmpty(billCodes)) { + setOperateLog(emisTmsSiteBatch, "1", "新增运单", billCodes); + } } if (!CollectionUtils.isEmpty(emisTmsSiteBatch.getLoadingList())) { for (EmisTmsSiteBatchLoading batchLoading : emisTmsSiteBatch.getLoadingList()) { @@ -292,8 +304,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi .collect(Collectors.toMap( EmisTmsSiteBatchDtl::getBillCode, item -> item, - (existing, replacement) -> existing - )) + (existing, replacement) -> existing)) .values() .stream() .collect(Collectors.toList()); @@ -302,17 +313,65 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi } } emisTmsSiteBatchMapper.updateEmisTmsSiteBatch(emisTmsSiteBatch); - emisTmsSiteBatchDtlMapper.updateDelFlagByBatchNo(emisTmsSiteBatch.getBatchNo()); emisTmsSiteBatchLoadingMapper.updateDelFlagByBatchNo(emisTmsSiteBatch.getBatchNo()); + if (StringUtil.isBlank(emisTmsSiteBatch.getBatchNo())) { return 1; } - if (CollectionUtil.isNotEmpty(distinctBatchDtlList)) { - for (EmisTmsSiteBatchDtl itemDtl : distinctBatchDtlList) { - itemDtl.setBatchNo(emisTmsSiteBatch.getBatchNo()); - emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl); + + // 获取历史批次明细数据 + List historyBatchDtlList = emisTmsSiteBatchDtlMapper + .selectEmisTmsSiteBatchDtlByBatchNo(emisTmsSiteBatch.getBatchNo()); + + // 处理批次明细数据:比较历史数据和新数据,进行插入或软删除操作 + if (CollectionUtil.isNotEmpty(distinctBatchDtlList) || CollectionUtil.isNotEmpty(historyBatchDtlList)) { + // 将历史数据按billCode分组,便于查找 + Map historyBatchDtlMap = historyBatchDtlList.stream() + .collect(Collectors.toMap(EmisTmsSiteBatchDtl::getBillCode, item -> item, + (existing, replacement) -> existing)); + + // 将新数据按billCode分组,便于查找 + Map newBatchDtlMap = distinctBatchDtlList != null + ? distinctBatchDtlList.stream() + .collect(Collectors.toMap(EmisTmsSiteBatchDtl::getBillCode, item -> item, + (existing, replacement) -> existing)) + : new HashMap<>(); + + // 处理需要插入的新数据 + if (CollectionUtil.isNotEmpty(distinctBatchDtlList)) { + List newBillCodes = new ArrayList<>(); + for (EmisTmsSiteBatchDtl itemDtl : distinctBatchDtlList) { + // 如果历史数据中不存在该billCode,则插入新数据 + if (!historyBatchDtlMap.containsKey(itemDtl.getBillCode())) { + emisTmsSiteBatchDtlMapper.insertEmisTmsSiteBatchDtl(itemDtl); + newBillCodes.add(itemDtl.getBillCode()); + } + } + + // 记录新增运单日志 + if (!newBillCodes.isEmpty()) { + setOperateLog(emisTmsSiteBatch, "1", "新增运单", newBillCodes); + } + } + + // 处理需要软删除的历史数据 + if (CollectionUtil.isNotEmpty(historyBatchDtlList)) { + List deletedBillCodes = new ArrayList<>(); + for (EmisTmsSiteBatchDtl historyDtl : historyBatchDtlList) { + // 如果新数据中不存在该billCode,则软删除历史数据 + if (!newBatchDtlMap.containsKey(historyDtl.getBillCode())) { + emisTmsSiteBatchDtlMapper.deleteEmisTmsSiteBatchDtlById(historyDtl.getId()); + deletedBillCodes.add(historyDtl.getBillCode()); + } + } + + // 记录删除运单日志 + if (!deletedBillCodes.isEmpty()) { + setOperateLog(emisTmsSiteBatch, "2", "删除运单", deletedBillCodes); + } } } + if (CollectionUtil.isNotEmpty(emisTmsSiteBatch.getLoadingList())) { for (EmisTmsSiteBatchLoading batchLoading : emisTmsSiteBatch.getLoadingList()) { batchLoading.setBatchNo(emisTmsSiteBatch.getBatchNo()); @@ -322,4 +381,15 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi return 1; } + private void setOperateLog(EmisTmsSiteBatch emisTmsSiteBatch, String number, String 删除运单, List deletedBillCodes) { + EmisTmsSiteBatchLog log = new EmisTmsSiteBatchLog(); + log.setBatchNo(emisTmsSiteBatch.getBatchNo()); + log.setOpType(number); + log.setOpDate(new Date()); + log.setOpMan(getCurrentUser().getEmpName()); + log.setOpSiteName(getCurrentUser().getOwnerSiteName()); + log.setOpDesc(emisTmsSiteBatch.getBatchNo() + 删除运单 + String.join(",", deletedBillCodes)); + emisTmsSiteBatchLogMapper.insertEmisTmsSiteBatchLog(log); + } + } diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchLogMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchLogMapper.xml new file mode 100644 index 000000000..d6782fd01 --- /dev/null +++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchLogMapper.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + select id, batch_no, op_type, op_date, op_man_code, op_man, op_site_code, op_site_name, op_desc, del_flag, remark, create_by, create_time, update_by, update_time, update_site, create_site from emis_tms_site_batch_log + + + + + + + + + + + + insert into emis_tms_site_batch_log + + batch_no, + op_type, + op_date, + op_man_code, + op_man, + op_site_code, + op_site_name, + op_desc, + del_flag, + remark, + create_by, + create_time, + update_by, + update_time, + update_site, + create_site, + + + #{batchNo}, + #{opType}, + #{opDate}, + #{opManCode}, + #{opMan}, + #{opSiteCode}, + #{opSiteName}, + #{opDesc}, + #{delFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{updateSite}, + #{createSite}, + + + + + update emis_tms_site_batch_log + + batch_no = #{batchNo}, + op_type = #{opType}, + op_date = #{opDate}, + op_man_code = #{opManCode}, + op_man = #{opMan}, + op_site_code = #{opSiteCode}, + op_site_name = #{opSiteName}, + op_desc = #{opDesc}, + del_flag = #{delFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + update_site = #{updateSite}, + create_site = #{createSite}, + + where id = #{id} + + + + delete from emis_tms_site_batch_log where id = #{id} + + + + delete from emis_tms_site_batch_log where id in + + #{id} + + + \ No newline at end of file