| | |
| | | import com.bstek.dorado.annotation.DataResolver; |
| | | import com.bstek.dorado.annotation.Expose; |
| | | import com.bstek.dorado.data.provider.Page; |
| | | import com.fzzy.common.constant.BizTypeEnum; |
| | | import com.fzzy.igds.constant.Constant; |
| | | import com.fzzy.igds.data.BaseResp; |
| | | import com.fzzy.igds.data.InoutData; |
| | | import com.fzzy.igds.data.InoutParam; |
| | | import com.fzzy.igds.domain.InoutNoticeIn; |
| | | import com.fzzy.igds.domain.InoutNoticeOut; |
| | | import com.fzzy.igds.domain.InoutRecord; |
| | | import com.fzzy.igds.service.DepotService; |
| | | import com.fzzy.igds.service.ExportService; |
| | | import com.fzzy.igds.service.InoutNoticeService; |
| | | import com.fzzy.igds.service.InoutRecordService; |
| | | import com.fzzy.igds.utils.ContextUtil; |
| | | import com.ruoyi.common.annotation.Log; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.enums.BusinessType; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import org.apache.commons.lang3.time.DateFormatUtils; |
| | | 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.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Description 出入库详单页面管理 |
| | |
| | | |
| | | @Resource |
| | | private InoutRecordService inoutRecordService; |
| | | @Resource |
| | | private ExportService exportService; |
| | | @Resource |
| | | private InoutNoticeService noticeService; |
| | | @Resource |
| | | private DepotService depotService; |
| | | |
| | | /** |
| | | * inoutDataPR#pageInoutData |
| | |
| | | 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) { |
| | | if (null == param) { |
| | | param = new InoutParam(); |
| | | } |
| | | inoutRecordService.listPageInout(corePage, param); |
| | |
| | | if (!Constant.PROGRESS_RECORD.equals(data.getProgress())) { |
| | | return "系统:未结束流程的数据不支持修改!"; |
| | | } |
| | | int i = inoutRecordService.updateInoutRecord(data); |
| | | |
| | | int i = inoutRecordService.checkAndUpdate(data); |
| | | if (i > 0) { |
| | | return null; |
| | | } else { |
| | |
| | | */ |
| | | @DataResolver |
| | | @Transactional |
| | | @Log(title = "出入库数据执行异常终止", businessType = BusinessType.UPDATE,bizType = BizTypeEnum.INOUT) |
| | | public String errorInoutData(InoutRecord data) { |
| | | return inoutRecordService.errorInoutData(data); |
| | | } |
| | |
| | | return inoutRecordService.outWeightBill(data); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * inoutDataPR#analysisExcel |
| | | * |
| | | * @param fileName |
| | | * @return |
| | | */ |
| | | @Expose |
| | | public BaseResp analysisExcel(String fileName) { |
| | | |
| | | try { |
| | | List<InoutRecord> inoutRecords = exportService.readExcel(fileName); |
| | | if (null == inoutRecords || inoutRecords.isEmpty()) { |
| | | return BaseResp.error("导入失败,原因-->未获取到excel中文档数据!"); |
| | | } |
| | | |
| | | //判断数据完整性 |
| | | boolean addTag = false; |
| | | int hour = 10; |
| | | int min = 10; |
| | | |
| | | for (InoutRecord inoutRecord : inoutRecords) { |
| | | //设置数据状态及流程 |
| | | inoutRecord.setRecordStatus(Constant.RECORD_STATUS_ADD); |
| | | inoutRecord.setProgress(Constant.PROGRESS_RECORD); |
| | | |
| | | //校验通知单 |
| | | String noticeId = inoutRecord.getNoticeId(); |
| | | if(StringUtils.isBlank(noticeId)){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | if(noticeId.startsWith("RK_")){ |
| | | InoutNoticeIn noticeInOne = noticeService.getNoticeInOne(noticeId); |
| | | if(null == noticeInOne){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | inoutRecord.setDeptId(noticeInOne.getDeptId()); |
| | | } |
| | | if(noticeId.startsWith("CK_")){ |
| | | InoutNoticeOut noticeOut = noticeService.getNoticeOutOne(noticeId); |
| | | if(null == noticeOut){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | inoutRecord.setDeptId(noticeOut.getDeptId()); |
| | | } |
| | | |
| | | //校验仓库 |
| | | String depotName = inoutRecord.getDepotId(); |
| | | if(StringUtils.isBlank(depotName)){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | //根据仓库名称获取仓库编码 |
| | | String depotId = depotService.getDepotId(inoutRecord.getDeptId(), depotName); |
| | | if(StringUtils.isBlank(depotId)){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | inoutRecord.setDepotId(depotId); |
| | | |
| | | //校验日期是否完整 |
| | | String plateNum = inoutRecord.getPlateNum(); |
| | | if(null == plateNum){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | inoutRecord.setPlateNum(plateNum); |
| | | |
| | | //校验日期是否完整 |
| | | Date registerTime = inoutRecord.getRegisterTime(); |
| | | if(null == registerTime){ |
| | | addTag = true; |
| | | break; |
| | | } |
| | | |
| | | //设置登记、称重、完成时间 |
| | | String time = DateFormatUtils.format(registerTime, "yyyy-MM-dd"); |
| | | if(min >= 60){ |
| | | min = 10; |
| | | hour ++; |
| | | } |
| | | time += " " + hour + ":" + min + ":00"; |
| | | inoutRecord.setRegisterTime(DateUtils.parseDate(time,"yyyy-MM-dd HH:mm:ss")); |
| | | if(Constant.TYPE_IN.equals(inoutRecord.getType())){ |
| | | inoutRecord.setFullWeightTime(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 3)); |
| | | inoutRecord.setHandleEnd(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 30)); |
| | | inoutRecord.setEmptyWeightTime(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 50)); |
| | | } |
| | | if(Constant.TYPE_OUT.equals(inoutRecord.getType())){ |
| | | inoutRecord.setEmptyWeightTime(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 3)); |
| | | inoutRecord.setHandleEnd(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 30)); |
| | | inoutRecord.setFullWeightTime(DateUtils.addMinutes(inoutRecord.getRegisterTime(), 50)); |
| | | } |
| | | inoutRecord.setCompleteTime(DateUtils.addHours(inoutRecord.getRegisterTime(), 1)); |
| | | |
| | | inoutRecord.setCompanyId(ContextUtil.getCompanyId()); |
| | | min ++; |
| | | } |
| | | |
| | | if(addTag){ |
| | | return BaseResp.error("导入失败,原因-->数据校验失败,请核查数据<日期、类型、车牌、通知单、仓库、品种等信息>!!!"); |
| | | } |
| | | |
| | | //新增数据 |
| | | String msg = inoutRecordService.addInoutRecordList(inoutRecords,false); |
| | | |
| | | if(null == msg){ |
| | | return BaseResp.success("导入成功,共计导入" + inoutRecords.size() + "条数据!" ); |
| | | }else { |
| | | return BaseResp.error(msg); |
| | | } |
| | | } catch (Exception e) { |
| | | return BaseResp.error("导入失败,原因-->" + e.getMessage()); |
| | | } |
| | | |
| | | } |
| | | } |