package com.fzzy.igds;
|
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.annotation.DataResolver;
|
import com.bstek.dorado.annotation.Expose;
|
import com.bstek.dorado.data.provider.Page;
|
import com.fzzy.igds.constant.Constant;
|
import com.fzzy.igds.data.NoticeDto;
|
import com.fzzy.igds.data.NoticeParam;
|
import com.fzzy.igds.service.InoutNoticeService;
|
import com.fzzy.igds.domain.InoutNoticeIn;
|
import com.fzzy.igds.domain.InoutNoticeOut;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.utils.StringUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Component;
|
import javax.annotation.Resource;
|
import java.util.*;
|
|
/**
|
* @Description 通知单管理
|
* @Author CZT
|
* @Date 2025/11/29 16:42
|
*/
|
@Component
|
public class InoutNoticePR {
|
|
@Resource
|
private InoutNoticeService inoutNoticeService;
|
|
/**
|
* inoutNoticePR#getYearQuery 默认年份
|
*
|
* @param
|
* @return
|
*/
|
@DataProvider
|
public Map<String, Object> getYearQuery(Map<String, Object> param) {
|
Map<String, Object> result = new HashMap<String, Object>();
|
//获取参数中分库编码
|
String deptId = (String)param.get("deptId");
|
|
result.put("year", DateFormatUtils.format(new Date(), "yyyy"));
|
result.put("deptId", deptId);
|
return result;
|
}
|
|
/*==================== 入库通知单相关业务 ====================*/
|
|
/**
|
* inoutNoticePR#initAddIn 入库通知单新增初始化
|
*
|
* @return
|
*/
|
@Expose
|
public InoutNoticeIn initAddIn() {
|
SysUser user = ContextUtil.getLoginUser();
|
InoutNoticeIn data = new InoutNoticeIn();
|
data.setId(ContextUtil.generateOrderId("RK"));
|
data.setName("入库通知单");
|
data.setCompanyId(user.getCompanyId());
|
data.setDeptId(ContextUtil.subDeptId(user));
|
data.setYear(DateFormatUtils.format(new Date(), "yyyy"));
|
data.setCreateBy(ContextUtil.getLoginUserName());
|
data.setCreateTime(new Date());
|
return data;
|
}
|
|
/**
|
* inoutNoticePR#pageQueryIn 获取入库通知单
|
*
|
* @param param
|
* @return
|
*/
|
@DataProvider
|
public void pageQueryIn(Page<InoutNoticeIn> page, NoticeParam param) {
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutNoticeIn> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
|
|
inoutNoticeService.pageQueryIn(corePage, param);
|
|
// 重新封装
|
page.setEntities(corePage.getRecords());
|
page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
|
}
|
|
/**
|
* inoutNoticePR#saveIn 更新入库通知单
|
*/
|
@DataResolver
|
public String saveIn(InoutNoticeIn data) {
|
InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
|
BeanUtils.copyProperties(data, inoutNoticeIn);
|
return inoutNoticeService.saveOrUpdateIn(inoutNoticeIn);
|
}
|
|
/**
|
* inoutNoticePR#delDataIn
|
*/
|
@Expose
|
public String delDataIn(InoutNoticeIn data) {
|
InoutNoticeIn inoutNoticeIn = new InoutNoticeIn();
|
BeanUtils.copyProperties(data, inoutNoticeIn);
|
return inoutNoticeService.delDataIn(inoutNoticeIn);
|
}
|
|
/**
|
* 重新核算入库通知单完成量
|
*
|
* inoutNoticePR#updateSumNoticeIn
|
*
|
* @return
|
*/
|
@Expose
|
public String updateSumNoticeIn() {
|
|
//获取所有未完成状态的入库通知单
|
String companyId = ContextUtil.getCompanyId();
|
|
List<InoutNoticeIn> noticeInList = inoutNoticeService.getUnComNoticeIn(companyId);
|
|
if (noticeInList != null && noticeInList.size() > 0) {
|
inoutNoticeService.updateSumNoticeIn(noticeInList);
|
return "success";
|
}
|
return "fail";
|
}
|
|
/*==================== 出库通知单相关业务 ====================*/
|
|
/**
|
* inoutNoticePR#initAddOut 出库通知单新增初始化
|
*
|
* @return
|
*/
|
@Expose
|
public InoutNoticeOut initAddOut() {
|
SysUser user = ContextUtil.getLoginUser();
|
InoutNoticeOut data = new InoutNoticeOut();
|
data.setId(ContextUtil.generateOrderId("CK"));
|
data.setName("出库通知单");
|
data.setCompanyId(user.getCompanyId());
|
data.setDeptId(ContextUtil.subDeptId(user));
|
data.setYear(DateFormatUtils.format(new Date(), "yyyy"));
|
data.setCreateBy(ContextUtil.getLoginUserName());
|
data.setCreateTime(new Date());
|
return data;
|
}
|
|
/**
|
* inoutNoticePR#pageQueryOut 获取出库通知单
|
* @param page
|
* @param param
|
*/
|
@DataProvider
|
public void pageQueryOut(Page<InoutNoticeOut> page, NoticeParam param) {
|
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutNoticeOut> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
|
|
inoutNoticeService.pageQueryOut(corePage, param);
|
|
// 重新封装
|
page.setEntities(corePage.getRecords());
|
page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
|
}
|
|
/**
|
* inoutNoticePR#saveOut 更新出库通知单
|
* @param data
|
* @return
|
*/
|
@DataResolver
|
public String saveOut(InoutNoticeOut data) {
|
InoutNoticeOut inoutNoticeOut = new InoutNoticeOut();
|
BeanUtils.copyProperties(data, inoutNoticeOut);
|
return inoutNoticeService.saveOrUpdateOut(inoutNoticeOut);
|
}
|
|
/**
|
* inoutNoticePR#delDataOut
|
*/
|
@Expose
|
public String delDataOut(InoutNoticeOut data) {
|
InoutNoticeOut inoutNoticeOut = new InoutNoticeOut();
|
BeanUtils.copyProperties(data, inoutNoticeOut);
|
return inoutNoticeService.delDataOut(inoutNoticeOut);
|
}
|
|
|
/**
|
* 重新核算出库通知单完成量
|
*
|
* inoutNoticePR#updateSumNoticeOut
|
*
|
* @return
|
*/
|
@Expose
|
public String updateSumNoticeOut() {
|
|
//获取所有未完成状态的入库通知单
|
String companyId = ContextUtil.getCompanyId();
|
|
List<InoutNoticeOut> noticeOutList = inoutNoticeService.getUnComNoticeOut(companyId);
|
|
if (noticeOutList != null && noticeOutList.size() > 0) {
|
inoutNoticeService.updateSumNoticeOut(noticeOutList);
|
return "success";
|
}
|
return "fail";
|
}
|
|
|
/**
|
* inoutNoticePR#queryNoticeByKey 根据参数查询出入库通知单,用于手动补单时,选择通知单
|
*
|
* @param
|
* @return
|
*/
|
@DataProvider
|
public List<NoticeDto> queryNoticeByKey(Map<String, Object> param) {
|
if (param == null) {
|
return null;
|
}
|
String type = (String)param.get("type");
|
if (StringUtils.isEmpty(type)) {
|
return null;
|
}
|
List<NoticeDto> list = new ArrayList<>();
|
NoticeDto dto;
|
|
NoticeParam noticeParam = new NoticeParam();
|
noticeParam.setCompanyId(ContextUtil.getCompanyId());
|
noticeParam.setDeptId(ContextUtil.subDeptId(null));
|
noticeParam.setCompleteStatus(Constant.COMPLETE_STATUS_NONE);
|
String key = (String)param.get("key");
|
if (StringUtils.isNotEmpty(key)) {
|
noticeParam.setKey(key);
|
}
|
|
if (Constant.TYPE_IN.equals(type)) {
|
List<InoutNoticeIn> listIn = inoutNoticeService.getNoticeIn(noticeParam);
|
if (null != listIn && listIn.size() > 0) {
|
for (InoutNoticeIn inoutNoticeIn : listIn) {
|
dto = new NoticeDto();
|
BeanUtils.copyProperties(inoutNoticeIn, dto);
|
list.add(dto);
|
}
|
}
|
}
|
if (Constant.TYPE_OUT.equals(type)) {
|
List<InoutNoticeOut> listOut = inoutNoticeService.getNoticeOut(noticeParam);
|
if (null != listOut && listOut.size() > 0) {
|
for (InoutNoticeOut inoutNoticeOut : listOut) {
|
dto = new NoticeDto();
|
BeanUtils.copyProperties(inoutNoticeOut, dto);
|
list.add(dto);
|
}
|
}
|
}
|
return list;
|
}
|
|
}
|