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.InoutData;
|
import com.fzzy.igds.data.InoutParam;
|
import com.fzzy.igds.domain.InoutRecord;
|
import com.fzzy.igds.service.ExportService;
|
import com.fzzy.igds.service.InoutRecordService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import org.apache.commons.lang3.time.DateUtils;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
import javax.annotation.Resource;
|
import java.util.*;
|
|
/**
|
* @Description 出入库详单页面管理
|
* @Author CZT
|
* @Date 2025/12/05 10:40
|
*/
|
@Component
|
public class InoutDataPR {
|
|
@Resource
|
private InoutRecordService inoutRecordService;
|
@Resource
|
private ExportService exportService;
|
|
/**
|
* inoutDataPR#pageInoutData
|
*
|
* @param page
|
* @param param
|
*/
|
@DataProvider
|
public void pageInoutData(Page<InoutRecord> page, InoutParam param) {
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutRecord> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
|
|
if (null == param) {
|
param = new InoutParam();
|
}
|
inoutRecordService.listPageInout(corePage, param);
|
|
// 重新封装
|
page.setEntities(corePage.getRecords());
|
page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
|
}
|
|
/**
|
* 保存出入库数据 inoutDataPR#saveInoutData
|
*/
|
@DataResolver
|
public String saveInoutData(InoutRecord data) {
|
if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
|
return "系统:已经删除的数据不支持修改!";
|
}
|
if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
|
return "系统:未结束流程的数据不支持修改!";
|
}
|
int i = inoutRecordService.updateInoutRecord(data);
|
if (i > 0) {
|
return null;
|
} else {
|
return "保存失败!";
|
}
|
}
|
|
/**
|
* inoutDataPR#errorInoutData 出入库数据执行 异常终止
|
*
|
* @param data
|
* @return
|
* @throws Exception
|
*/
|
@DataResolver
|
@Transactional
|
public String errorInoutData(InoutRecord data) {
|
return inoutRecordService.errorInoutData(data);
|
}
|
|
/**
|
* inoutDataPR#printWeightBill 获取打印单信息
|
*
|
* @param data
|
* @return
|
* @throws Exception
|
*/
|
@Expose
|
public String printWeightBill(InoutRecord data) {
|
if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
|
return "删除的数据不支持打印!";
|
}
|
if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
|
return "未完成的数据不支持打印!";
|
}
|
|
if (Constant.TYPE_IN.equals(data.getType())) {
|
return inoutRecordService.inWeightBill(data);
|
} else {
|
return inoutRecordService.outWeightBill(data);
|
}
|
}
|
|
|
/**
|
* inoutDataPR#initDataByHand 新增
|
*
|
* @return
|
*/
|
@DataProvider
|
public InoutData initDataByHand(String type) {
|
SysUser user = ContextUtil.getLoginUser();
|
InoutData data = new InoutData();
|
data.setCompanyId(user.getCompanyId());
|
data.setRegisterTime(new Date());
|
data.setType(type);
|
data.setRegisterUser(user.getUserName());
|
data.setDeptId(ContextUtil.subDeptId(user));
|
data.setCheckUser(user.getUserName());
|
data.setProgress(Constant.PROGRESS_RECORD);
|
data.setRecordStatus(Constant.RECORD_STATUS_ADD);
|
return data;
|
}
|
|
/**
|
* 补单 inoutDataPR#addData
|
*/
|
@DataResolver
|
public String addData(InoutData data) {
|
if (data.getSettleWeight() <= 0.0) {
|
return "系统:结算重量必须大于0";
|
}
|
|
return inoutRecordService.handAddInoutRecord(data);
|
}
|
|
/**
|
* inoutDataPR#printWeightBill 获取打印单信息
|
*
|
* @param data
|
* @return
|
* @throws Exception
|
*/
|
@Expose
|
public String printWeightBillHand(InoutData data) {
|
if (Constant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
|
return "删除的数据不支持打印!";
|
}
|
if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) {
|
return "未完成的数据不支持打印!";
|
}
|
|
if (Constant.TYPE_IN.equals(data.getType())) {
|
return inoutRecordService.inWeightBill(data);
|
} else {
|
return inoutRecordService.outWeightBill(data);
|
}
|
}
|
|
/**
|
* inoutDataPR#analysisExcel
|
*
|
* @param fileName
|
* @return
|
*/
|
@Expose
|
public String analysisExcel(String fileName) {
|
return "导入功能待上线!!";
|
// try {
|
// List<InoutRecord> inoutRecords = exportService.readExcel(fileName);
|
// if (null == inoutRecords || inoutRecords.isEmpty()) {
|
// return "导入失败,原因-->未获取到excel中文档数据!";
|
// }
|
//
|
//
|
// for (InoutRecord inoutRecord : inoutRecords) {
|
//
|
// //TODO 判断数据是否正常数据,正常则新增,异常则忽略
|
// //设置数据状态及流程
|
// inoutRecord.setRecordStatus(Constant.RECORD_STATUS_ADD);
|
// inoutRecord.setProgress(Constant.PROGRESS_RECORD);
|
//
|
// inoutRecord.setCompleteTime(new Date());
|
//
|
//
|
// inoutRecord.setRegisterTime(DateUtils.addHours(new Date(), -2));
|
//
|
//
|
//
|
//
|
// inoutRecordService.addInoutRecord(inoutRecord);
|
// }
|
//
|
//
|
//
|
//
|
// return null;
|
// } catch (Exception e) {
|
// return "导入失败,原因-->" + e.getMessage();
|
// }
|
|
|
// // 读取的Excel文件数据
|
// List<NoticeInData> readResult = readExcel(fileName);
|
// if (null == readResult) {
|
// return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
|
// "导入失败:没有解析到文件中数据!");
|
// }
|
//
|
// // 查询到的所有供应商信息
|
// InoutParam param = new InoutParam();
|
// param.setTagSupplier(Constant.TR_TRUE + "");
|
// List<InoutCustomer> allCustomer = inoutCommonService.listCustomer(param);
|
//
|
// //新建任务存放集合
|
// List<NoticeInData> newCustomerTaskList = new ArrayList<>();
|
// Map<String, NoticeInData> newMap = new HashMap<>();
|
//
|
// //存放编码和名称不一致的信息
|
// StringBuilder stringBuilder = new StringBuilder();
|
//
|
// //用tempFlag在后面来判断解析到的客户是否在客户表中存在
|
// boolean tempFlag;
|
//
|
// int max = 0;
|
// for (NoticeInData noticeInData : readResult) {
|
// //获取客户任务数据中的客户名称和编码
|
// String customerName = noticeInData.getCustomerName();
|
// String customerId = noticeInData.getCustomerId();
|
// //判断编码是否为空,为空则给出提示,不进行操作
|
// if(StringUtils.isEmpty(customerName)){
|
// stringBuilder.append("客户‘").append(customerName).append("’信息不完整,不导入此条数据;\n");
|
// continue;
|
// }
|
//
|
// tempFlag = true;
|
//
|
// for (InoutCustomer customer : allCustomer) {
|
// //获取供应商名称和编码
|
// String name = customer.getName();
|
// String id = customer.getId();
|
// //判断名称是否相同
|
// if(customerName.equals(name)){
|
// //名称相同,则客户在表中存在
|
// tempFlag = false;
|
// //判断编码是否相同
|
// if(StringUtils.isEmpty(customerId) || !id.equals(customerId)){
|
//
|
// noticeInData.setCustomerId(id);
|
// }
|
// noticeInData.setCompanyId(customer.getCompanyId());
|
// //身份证号
|
// if(StringUtils.isEmpty(noticeInData.getCardId())){
|
// noticeInData.setCardId(customer.getCardId());
|
// }
|
// //地址
|
// if(StringUtils.isEmpty(noticeInData.getAddress())){
|
// noticeInData.setAddress(customer.getAddress());
|
// }
|
// //电话
|
// if(StringUtils.isEmpty(noticeInData.getPhone())){
|
// noticeInData.setPhone(customer.getPhone());
|
// }
|
// //一卡通号
|
// if(StringUtils.isEmpty(noticeInData.getBankNum())){
|
// noticeInData.setBankNum(customer.getBankNum());
|
// }
|
// }
|
// }
|
//
|
// if(tempFlag){
|
// if(max == 0){
|
// max = Integer.parseInt(inoutCommonService.getMaxCustomerId(null));
|
// }
|
// max += 1;
|
// noticeInData.setCustomerId(max + "");
|
// }
|
//
|
// newCustomerTaskList.add(noticeInData);
|
//
|
// newMap.putIfAbsent(noticeInData.getCustomerName(), noticeInData);
|
// }
|
//
|
// //更新客户信息表
|
// if(newMap.size() > 0){
|
// for (NoticeInData noticeInData : newMap.values()) {
|
// int i = inoutCommonService.updateCustomer(noticeInData);
|
// if (i == 0) {
|
// //说明没有更新到客户信息,进行新增
|
// InoutCustomer data = new InoutCustomer();
|
// data.setId(noticeInData.getCustomerId());
|
// data.setName(noticeInData.getCustomerName());
|
// data.setCardId(noticeInData.getCardId());
|
// data.setBankNum(noticeInData.getBankNum());
|
// data.setAddress(noticeInData.getAddress());
|
// data.setPhone(noticeInData.getPhone());
|
// data.setTagSupplier(Constant.TR_TRUE + "");
|
// customerService.saveOrUpdataData(data);
|
// }
|
// }
|
// }
|
//
|
// //判断任务集合是否为空
|
// if (newCustomerTaskList.isEmpty()) {
|
// return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
|
// "导入失败!\n" + stringBuilder.toString());
|
// } else {
|
// //更新任务表
|
// int temp = 1;
|
// for (NoticeInData noticeInData : newCustomerTaskList) {
|
// //设置客户通知单的组织编码等信息
|
// noticeInData.setCompanyId(ContextUtil.getCompanyId());
|
// noticeInData.setDeptId(ContextUtil.subDeptId(null));
|
// noticeInData.setCreateUser(ContextUtil.getLoginUserCName());
|
// if(temp < 10){
|
// noticeInData.setId(ContextUtil.getTimeId() + "00" + temp);
|
// }else if(temp < 100){
|
// noticeInData.setId(ContextUtil.getTimeId() + "0" + temp);
|
// }else {
|
// noticeInData.setId(ContextUtil.getTimeId() + temp);
|
// }
|
//
|
// //更新客户任务信息,如果更新失败,则进行插入操作
|
// inoutCommonService.updateNoticeIn(noticeInData);
|
// temp += 1;
|
// }
|
// if(StringUtils.isEmpty(stringBuilder.toString())){
|
// return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "数据全部导入成功!");
|
// }else {
|
// String message = "数据部分导入成功!\n"+ stringBuilder.toString();
|
// return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), message);
|
// }
|
//
|
// }
|
}
|
}
|