fzzy-igdss-core/src/main/java/com/fzzy/igds/service/DepotService.java
@@ -269,4 +269,30 @@ } return depot; } /** * 获取仓库信息-根据仓库名称获取仓库ID * * @param deptId * @return */ public String getDepotId(String deptId, String depotName) { if (StringUtils.isEmpty(deptId)) { return null; } if (StringUtils.isEmpty(depotName)) { return null; } List<Depot> depotList = getCacheDepotList(ContextUtil.getCompanyId(), deptId); if(null == depotList || depotList.isEmpty()){ return null; } for (Depot depot : depotList) { if(depotName.equals(depot.getName())){ return depot.getId(); } } return null; } } fzzy-igdss-core/src/main/java/com/fzzy/igds/service/ExportService.java
@@ -214,6 +214,18 @@ } } //通知单编码 cell = row.getCell(cellNum++); if(cell == null || cell.getCellType() == CellType.BLANK){ resultData.setNoticeId(""); }else { cell.setCellType(CellType.STRING); String noticeId = cell.getStringCellValue().trim(); if(StringUtils.isNotEmpty(noticeId)){ resultData.setNoticeId(noticeId); } } //装卸仓库 cell = row.getCell(cellNum++); if(cell == null || cell.getCellType() == CellType.BLANK){ fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutRecordService.java
@@ -257,6 +257,24 @@ /** * 新增出入库记录 * * @param list * @return */ public String addInoutRecordList(List<InoutRecord> list) { if(null == list || list.isEmpty()){ return "新增失败"; } for (InoutRecord inoutRecord : list) { addInoutRecord(inoutRecord); } return null; } /** * 新增出入库记录 * * @param data * @return */ fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutDataPR.java
@@ -5,13 +5,20 @@ import com.bstek.dorado.annotation.Expose; import com.bstek.dorado.data.provider.Page; 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.core.domain.entity.SysUser; 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; @@ -30,6 +37,10 @@ private InoutRecordService inoutRecordService; @Resource private ExportService exportService; @Resource private InoutNoticeService noticeService; @Resource private DepotService depotService; /** * inoutDataPR#pageInoutData @@ -169,173 +180,115 @@ * @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(); // } public BaseResp analysisExcel(String fileName) { try { List<InoutRecord> inoutRecords = exportService.readExcel(fileName); if (null == inoutRecords || inoutRecords.isEmpty()) { return BaseResp.error("导入失败,原因-->未获取到excel中文档数据!"); } // // 读取的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); // } // // } //判断数据完整性 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); if(null == msg){ return BaseResp.success("导入成功,共计导入" + inoutRecords.size() + "条数据!" ); }else { return BaseResp.error(msg); } } catch (Exception e) { return BaseResp.error("导入失败,原因-->" + e.getMessage()); } } } fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutList.view.xml
@@ -725,7 +725,7 @@ <Dialog id="dialogMain" layout="regionPadding:8"> <Property name="iconClass">fa fa-tasks</Property> <Property name="caption">单据信息</Property> <Property name="width">70%</Property> <Property name="width">80%</Property> <Property name="closeable">false</Property> <Property name="height">90%</Property> <Buttons> @@ -763,7 +763,7 @@ <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,*,*</Property> <Property name="cols">*,*,*,*</Property> <Property name="labelAlign">right</Property> <Property name="labelSeparator">:</Property> <Property name="labelWidth">100</Property> @@ -777,7 +777,7 @@ <Property name="property">plateNum</Property> <Editor/> </AutoFormElement> <AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">deptId</Property> <Property name="property">deptId</Property> <Property name="readOnly">true</Property> @@ -787,6 +787,11 @@ <Property name="name">depotId</Property> <Property name="property">depotId</Property> <Property name="label">装卸仓库</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodVariety</Property> <Property name="property">foodVariety</Property> <Editor/> </AutoFormElement> <AutoFormElement> @@ -800,29 +805,8 @@ <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodVariety</Property> <Property name="property">foodVariety</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perWet</Property> <Property name="property">perWet</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">userContact</Property> <Property name="property">userContact</Property> <Property name="label">联系电话</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">foodLevel</Property> <Property name="property">foodLevel</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perImpurity</Property> <Property name="property">perImpurity</Property> <Editor/> </AutoFormElement> <AutoFormElement> @@ -838,6 +822,12 @@ <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">userContact</Property> <Property name="property">userContact</Property> <Property name="label">联系电话</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="label">客户名称</Property> <Property name="property">customerName</Property> <Property name="editable">false</Property> @@ -849,6 +839,16 @@ <Property name="property">noticeId</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perWet</Property> <Property name="property">perWet</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">perImpurity</Property> <Property name="property">perImpurity</Property> <Editor/> </AutoFormElement> </AutoForm> </Children> </FieldSet> @@ -858,76 +858,76 @@ <Children> <AutoForm> <Property name="dataSet">dsMain</Property> <Property name="cols">*,50,*,50,*,50</Property> <Property name="cols">*,*,*,*</Property> <Property name="labelAlign">right</Property> <Property name="labelWidth">100</Property> <Property name="labelSeparator">:</Property> <AutoFormElement layoutConstraint="colSpan:2"> <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent> <Property name="name">fullWeight</Property> <Property name="property">fullWeight</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">fullWeightTime</Property> <Property name="property">fullWeightTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">fullWeightUser</Property> <Property name="property">fullWeightUser</Property> <Property name="label">满车称重人</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent> <Property name="name">emptyWeight</Property> <Property name="property">emptyWeight</Property> <Property name="name">fullWeight</Property> <Property name="property">fullWeight</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">emptyWeightTime</Property> <Property name="property">emptyWeightTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">emptyWeightUser</Property> <Property name="property">emptyWeightUser</Property> <Property name="label">空车称重人</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">netWeight</Property> <Property name="property">netWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent> <Property name="name">deOther</Property> <Property name="property">deOther</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">emptyWeightTime</Property> <Property name="property">emptyWeightTime</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">emptyWeightUser</Property> <Property name="property">emptyWeightUser</Property> <Property name="label">空车称重人</Property> <Editor/> </AutoFormElement> <AutoFormElement> <ClientEvent name="onBlur">deAutoByWeight();</ClientEvent> <Property name="name">emptyWeight</Property> <Property name="property">emptyWeight</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">netWeight</Property> <Property name="property">netWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">registerTime</Property> <Property name="property">registerTime</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">completeTime</Property> <Property name="property">completeTime</Property> <Editor/> </AutoFormElement> <AutoFormElement> <Property name="name">settleWeight</Property> <Property name="property">settleWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <AutoFormElement> <Property name="name">recordWeight</Property> <Property name="property">recordWeight</Property> <Property name="readOnly">true</Property> <Editor/> </AutoFormElement> <AutoFormElement layoutConstraint="colSpan:2"> <Property name="name">completeTime</Property> <Property name="property">completeTime</Property> <Editor/> </AutoFormElement> </AutoForm> @@ -1188,12 +1188,12 @@ if(fileName){
 $notify("附件上传成功,开始执行解析……");
 view.get("#ajaxAnalysisExcel").set("parameter",fileName).execute(function(result){
 if(result){
 $alert(result);
 }else{
 $alert("导入并解析成功!");
 if("200"!=result.code){ $alert(result.message);
 }else{ $alert(result.message);
 query();
 }
 } });
 }</ClientEvent> <Property name="fileResolver">fileUploadManage#uploadExcel</Property>