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<InoutNoticeIn> page, NoticeParam param) {
|
QueryWrapper<InoutNoticeIn> 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<InoutNoticeIn> getNoticeIn(NoticeParam param) {
|
|
QueryWrapper<InoutNoticeIn> 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<InoutNoticeIn> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("id", id);
|
return noticeInMapper.selectOne(queryWrapper);
|
}
|
|
/**
|
* 查询数据
|
* @param companyId
|
* @return
|
*/
|
public List<InoutNoticeIn> 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<InoutNoticeOut> page, NoticeParam param) {
|
QueryWrapper<InoutNoticeOut> 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<InoutNoticeOut> getNoticeOut(NoticeParam param) {
|
QueryWrapper<InoutNoticeOut> 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<InoutNoticeOut> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("id", id);
|
return noticeOutMapper.selectOne(queryWrapper);
|
}
|
|
/**
|
* Mybatis-plus 获取信息
|
* @param companyId
|
* @return
|
*/
|
public List<InoutNoticeOut> 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<InoutNoticeIn> 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<InoutNoticeOut> 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;
|
}
|
|
}
|