package com.fzzy.igds.app.v1.service.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.fzzy.common.constant.RespCodeEnum;
|
import com.fzzy.igds.app.v1.constant.PhoneConstant;
|
import com.fzzy.igds.app.v1.data.AuthUser;
|
import com.fzzy.igds.app.v1.data.ParamInoutHandle;
|
import com.fzzy.igds.app.v1.data.PhoneRequest;
|
import com.fzzy.igds.app.v1.data.PhoneResponse;
|
import com.fzzy.igds.app.v1.service.PhoneService;
|
import com.fzzy.igds.app.v1.util.PhoneRespUtil;
|
import com.fzzy.igds.constant.Constant;
|
import com.fzzy.igds.constant.InoutConstant;
|
import com.fzzy.igds.data.FileData;
|
import com.fzzy.igds.data.InoutData;
|
import com.fzzy.igds.data.PageResponse;
|
import com.fzzy.igds.domain.FileInfo;
|
import com.fzzy.igds.domain.InoutRecord;
|
import com.fzzy.igds.domain.InoutSysConf;
|
import com.fzzy.igds.mapper.InoutRecordMapper;
|
import com.fzzy.igds.service.FileService;
|
import com.fzzy.igds.service.InoutConfService;
|
import com.fzzy.igds.service.InoutRecordService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.utils.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Author: YYC
|
* @Description: 粮食购销-入库值仓提交
|
* @DateTime: 2026-1-12 14:43
|
**/
|
@Service
|
public class ServiceImpl5402 implements PhoneService {
|
@Resource
|
private InoutRecordMapper inoutRecordMapper;
|
@Resource
|
private InoutRecordService inoutRecordService;
|
@Resource
|
private InoutConfService inoutConfService;
|
@Resource
|
private FileService fileService;
|
|
@Override
|
public String getInterfaceId() {
|
return PhoneConstant.API_PHONE_5402;
|
}
|
|
@Override
|
public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
|
|
//转化为对象
|
ParamInoutHandle param = JSONObject.parseObject(req.getData().toString(), ParamInoutHandle.class);
|
if (null == param) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!");
|
}
|
param.setCompanyId(authUser.getCompanyId());
|
param.setDeptId(authUser.getDeptId());
|
|
QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
|
if (StringUtils.isNotBlank(param.getCompanyId())) {
|
queryWrapper.eq("company_id", param.getCompanyId());
|
}
|
if (StringUtils.isNotBlank(param.getId())) {
|
queryWrapper.eq("id", param.getId());
|
}
|
//值仓提交前,再次确认当前流水是否为值仓流程
|
InoutRecord inoutRecord = inoutRecordMapper.selectOne(queryWrapper);
|
if (!InoutConstant.PROGRESS_HANDLE.equals(inoutRecord.getProgress())) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "该单子不在值仓状态,不能进行值仓提交!");
|
}
|
|
InoutData data = new InoutData();
|
BeanUtils.copyProperties(inoutRecord, data);
|
//值仓结束提交,需更新流程状态、值仓结束时间、值仓人、值仓扣重等
|
data.setDeOther(param.getDeHandle());
|
data.setHandleUser(authUser.getCname());
|
//设置值仓图片信息
|
List<FileInfo> files = new ArrayList<>();
|
FileInfo fileData1 = new FileInfo();
|
FileInfo fileData2 = new FileInfo();
|
fileData1.setFileName(param.getFileName1());
|
fileData2.setFileName(param.getFileName2());
|
files.add(fileData1);
|
files.add(fileData2);
|
data.setFiles(files);
|
|
if (null == data.getHandleUser()) {
|
data.setHandleUser(authUser.getUsername());
|
}
|
InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(authUser.getCompanyId(), data.getDeptId());
|
if (null == inoutSysConf) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "提示:当前系统中流程配置异常,请联系管理员");
|
}
|
|
// 获取下一个流程状态
|
String curProgress = data.getProgress();
|
String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
|
data.setProgress(nextProgress);
|
data.setHandleEnd(new Date());
|
|
// 执行数据更新
|
int num = inoutRecordService.updateInoutRecord(data);
|
if (num == 0) {
|
return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "提交失败!");
|
}
|
//附件处理
|
fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
|
|
return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
|
// if (param.getType().equals(PhoneConstant.PHONE_INOUT_START)) {
|
// //值仓开始提交,只更新值仓开始时间
|
// int i = inoutRecordService.updateInoutRecord(data);
|
// if (i > 0) {
|
// return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
|
// }
|
// return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "提交失败!");
|
// } else {
|
// //值仓结束提交,需更新流程状态、值仓结束时间、值仓人、值仓扣重等
|
// data.setDeOther(param.getDeHandle());
|
// data.setHandleUser(authUser.getCname());
|
// //设置值仓图片信息
|
// List<FileInfo> files = new ArrayList<>();
|
// FileInfo fileData1 = new FileInfo();
|
// FileInfo fileData2 = new FileInfo();
|
// fileData1.setFileName(param.getFileName1());
|
// fileData2.setFileName(param.getFileName2());
|
// files.add(fileData1);
|
// files.add(fileData2);
|
// data.setFiles(files);
|
//
|
// if (null == data.getHandleUser()) {
|
// data.setHandleUser(authUser.getUsername());
|
// }
|
// InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(authUser.getCompanyId(), data.getDeptId());
|
// if (null == inoutSysConf) {
|
// return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "提示:当前系统中流程配置异常,请联系管理员");
|
// }
|
//
|
// // 获取下一个流程状态
|
// String curProgress = data.getProgress();
|
// String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
|
// data.setProgress(nextProgress);
|
// data.setHandleEnd(new Date());
|
//
|
// // 执行数据更新
|
// int num = inoutRecordService.updateInoutRecord(data);
|
// if (num == 0) {
|
// return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "提交失败!");
|
// }
|
// //附件处理
|
// fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
|
//
|
// return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
|
// }
|
}
|
|
|
/**
|
* 获取下一流程
|
*
|
* @param curProgress
|
* @param type
|
* @param sysConf
|
* @return
|
*/
|
private String getNextProgress(String curProgress, String type, InoutSysConf sysConf) {
|
String nextProgress = null;
|
List<String> list = null;
|
if (Constant.TYPE_IN.equals(type)) {
|
list = Arrays.asList(sysConf.getProgressIn().split("-"));
|
}
|
if (Constant.TYPE_OUT.equals(type)) {
|
list = Arrays.asList(sysConf.getProgressOut().split("-"));
|
}
|
if (list != null) {
|
for (int i = 0; i < list.size() - 1; i++) {
|
if (curProgress.equals(list.get(i))) {
|
nextProgress = list.get(i + 1);
|
break;
|
}
|
}
|
}
|
return nextProgress;
|
}
|
}
|