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 page, InoutParam param) { com.baomidou.mybatisplus.extension.plugins.pagination.Page 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 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 readResult = readExcel(fileName); // if (null == readResult) { // return new PageResponse(RespCodeEnum.CODE_1111.getCode(), // "导入失败:没有解析到文件中数据!"); // } // // // 查询到的所有供应商信息 // InoutParam param = new InoutParam(); // param.setTagSupplier(Constant.TR_TRUE + ""); // List allCustomer = inoutCommonService.listCustomer(param); // // //新建任务存放集合 // List newCustomerTaskList = new ArrayList<>(); // Map 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(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(RespCodeEnum.CODE_0000.getCode(), "数据全部导入成功!"); // }else { // String message = "数据部分导入成功!\n"+ stringBuilder.toString(); // return new PageResponse(RespCodeEnum.CODE_0000.getCode(), message); // } // // } } }