package com.fzzy.igds.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.data.NoticeDto; import com.fzzy.igds.data.NoticeParam; import com.fzzy.igds.mapper.InoutNoticeInMapper; import com.fzzy.igds.mapper.InoutNoticeOutMapper; import com.fzzy.igds.domain.InoutNoticeIn; import com.fzzy.igds.domain.InoutNoticeOut; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import javax.annotation.Resource; import java.util.Date; import java.util.List; /** * @Description 出入库通知单service层,包含入库通知单和出库通知单 * @Author CZT * @Date 2025/11/29 16:33 */ @Slf4j @Service public class InoutNoticeService { @Resource private InoutNoticeInMapper noticeInMapper; @Resource private InoutNoticeOutMapper noticeOutMapper; /*----------------------入库通知单信息-------------------------*/ /** * 分页查询数据 * @param page * @param param */ public void pageQueryIn(Page page, NoticeParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(null == param) { param = new NoticeParam(); } param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); if(StringUtils.isNotBlank(param.getCustomerName())){ queryWrapper.like("customer_name", param.getCustomerName()); } if(StringUtils.isNotBlank(param.getFoodVariety())){ queryWrapper.like("food_variety", param.getFoodVariety()); } if(StringUtils.isNotBlank(param.getCompleteStatus())){ queryWrapper.like("complete_status", param.getCompleteStatus()); } noticeInMapper.selectPage(page, queryWrapper); } /** * 根据条件查询 * @return */ public List getNoticeIn(NoticeParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(StringUtils.isNotBlank(param.getCompanyId())){ queryWrapper.eq("company_id", param.getCompanyId()); } if(StringUtils.isNotBlank(param.getDeptId())){ queryWrapper.eq("dept_id", param.getDeptId()); } if(StringUtils.isNotBlank(param.getCompleteStatus())){ queryWrapper.eq("complete_status", param.getCompleteStatus()); } if(StringUtils.isNotBlank(param.getKey())){ queryWrapper.like("name", param.getKey()); } queryWrapper.orderByDesc("create_time"); return noticeInMapper.selectList(queryWrapper); } /** * 根据条件查询 * @param id * @return */ public InoutNoticeIn getNoticeInOne(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id", id); return noticeInMapper.selectOne(queryWrapper); } /** * 查询数据 * @param companyId * @return */ public List getUnComNoticeIn(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } NoticeParam param = new NoticeParam(); param.setCompanyId(companyId); param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE); return this.getNoticeIn(param); } /** * - 保存更新数据 * * @param data * @return */ public String saveOrUpdateIn(InoutNoticeIn data) { if (null == data.getUpdateBy()) { data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); data.setCreateBy(ContextUtil.getLoginUserName()); data.setCreateTime(new Date()); data.setAuditStatus(Constant.COMPLETE_STATUS_NONE); data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE); noticeInMapper.insert(data); } else { data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); noticeInMapper.updateById(data); } return null; } /** * - 删除数据 * * @param data * @return */ public String delDataIn(InoutNoticeIn data) { noticeInMapper.deleteById(data); return null; } /*----------------------出库通知单信息-------------------------*/ /** * 分页查询数据 * @param page * @param param */ public void pageQueryOut(Page page, NoticeParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(null == param) { param = new NoticeParam(); } param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); if(StringUtils.isNotBlank(param.getCustomerName())){ queryWrapper.like("customer_name", param.getCustomerName()); } if(StringUtils.isNotBlank(param.getFoodVariety())){ queryWrapper.like("food_variety", param.getFoodVariety()); } if(StringUtils.isNotBlank(param.getCompleteStatus())){ queryWrapper.like("complete_status", param.getCompleteStatus()); } noticeOutMapper.selectPage(page, queryWrapper); } /** * 根据条件查询 * @return */ public List getNoticeOut(NoticeParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); if(StringUtils.isNotBlank(param.getCompanyId())){ queryWrapper.eq("company_id", param.getCompanyId()); } if(StringUtils.isNotBlank(param.getDeptId())){ queryWrapper.eq("dept_id", param.getDeptId()); } if(StringUtils.isNotBlank(param.getCompleteStatus())){ queryWrapper.eq("complete_status", param.getCompleteStatus()); } if(StringUtils.isNotBlank(param.getKey())){ queryWrapper.like("name", param.getKey()); } queryWrapper.orderByDesc("create_time"); return noticeOutMapper.selectList(queryWrapper); } /** * 根据条件查询 * @param id * @return */ public InoutNoticeOut getNoticeOutOne(String id) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id", id); return noticeOutMapper.selectOne(queryWrapper); } /** * Mybatis-plus 获取信息 * @param companyId * @return */ public List getUnComNoticeOut(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } NoticeParam param = new NoticeParam(); param.setCompanyId(companyId); param.setCompleteStatus(Constant.COMPLETE_STATUS_NONE); return this.getNoticeOut(param); } /** * - 保存更新数据 * * @param data * @return */ public String saveOrUpdateOut(InoutNoticeOut data) { if (null == data.getUpdateBy()) { data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); data.setCreateBy(ContextUtil.getLoginUserName()); data.setCreateTime(new Date()); data.setAuditStatus(Constant.COMPLETE_STATUS_NONE); data.setCompleteStatus(Constant.COMPLETE_STATUS_NONE); noticeOutMapper.insert(data); } else { data.setUpdateBy(ContextUtil.getLoginUserName()); data.setUpdateTime(new Date()); noticeOutMapper.updateById(data); } return null; } /** * 删除数据 * * @param data * @return */ public String delDataOut(InoutNoticeOut data) { noticeOutMapper.deleteById(data); return null; } /** * 根据ID获取通知单信息 * @param id * @param type * @return */ public NoticeDto queryNoticeById(String id, String type) { if (StringUtils.isEmpty(id) || StringUtils.isEmpty(type)) { return null; } NoticeDto noticeDto = new NoticeDto(); if (Constant.TYPE_IN.equals(type)) { InoutNoticeIn noticeIn = this.getNoticeInOne(id); BeanUtils.copyProperties(noticeIn, noticeDto); } else { InoutNoticeOut noticeOut = this.getNoticeOutOne(id); BeanUtils.copyProperties(noticeOut, noticeDto); } return noticeDto; } /** * Mybatis-plus 更新信息 * @param noticeInList * @return */ public void updateSumNoticeIn(List noticeInList) { if (null == noticeInList || noticeInList.isEmpty()) { return; } //遍历通知单 NoticeParam param; for (InoutNoticeIn noticeIn : noticeInList) { param = new NoticeParam(noticeIn.getCompanyId(), noticeIn.getDeptId(), noticeIn.getCustomerName(), noticeIn.getFoodVariety(), noticeIn.getId()); log.info("开始更新出库通知单={}", param.toString()); String msg = this.reSumNoticeInComplete(param); if (msg != null) { log.info("入库通知单完成量统计失败={},失败原因={}", param.toString(), msg); } } } /** * Mybatis-plus 获取信息 * @param param * @return */ public String reSumNoticeInComplete(NoticeParam param) { //TODO 待实现,后续根据需求进行实现 if (StringUtils.isEmpty(param.getCustomerName())) { return "客户编码为空!"; } if (StringUtils.isEmpty(param.getFoodVariety())) { return "粮食品种为空!"; } if (StringUtils.isEmpty(param.getCompanyId())) { param.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(param.getDeptId())) { param.setDeptId(ContextUtil.subDeptId(null)); } return null; } /** * Mybatis-plus 更新信息 * @param noticeOutList * @return */ public void updateSumNoticeOut(List noticeOutList) { if (null == noticeOutList || noticeOutList.isEmpty()) { return; } //遍历通知单 NoticeParam param; for (InoutNoticeOut noticeOut : noticeOutList) { param = new NoticeParam(noticeOut.getCompanyId(), noticeOut.getDeptId(), noticeOut.getDepotId(), noticeOut.getCustomerName(), noticeOut.getFoodVariety(), noticeOut.getId()); log.info("开始更新出库通知单={}", param.toString()); String msg = this.reSumNoticeOutComplete(param); if (msg != null) { log.info("出库通知单完成量统计失败={},失败原因={}", param.toString(), msg); } } } /** * Mybatis-plus 更新信息 * @param param * @return */ public String reSumNoticeOutComplete(NoticeParam param) { //TODO 待实现,后续根据需求进行实现 if (StringUtils.isEmpty(param.getCustomerName())) { return "客户编码为空!"; } if (StringUtils.isEmpty(param.getFoodVariety())) { return "粮食品种为空!"; } if (StringUtils.isEmpty(param.getDepotId())) { return "仓库编码为空!"; } if (StringUtils.isEmpty(param.getCompanyId())) { param.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(param.getDeptId())) { param.setDeptId(ContextUtil.subDeptId(null)); } return null; } }