zhang
2025-06-13 ae54e42cbe354ef5c39954eed2eab18de9504946
Merge remote-tracking branch 'origin/tzmsewcs' into tzmsewcs

# Conflicts:
# pom.xml
# src/main/java/com/zy/asrs/controller/CrnController.java
# src/main/java/com/zy/asrs/controller/MonitorController.java
# src/main/java/com/zy/asrs/controller/OpenController.java
# src/main/java/com/zy/asrs/controller/ReportQueryController.java
# src/main/java/com/zy/asrs/controller/SiteController.java
# src/main/java/com/zy/asrs/controller/TaskWrkController.java
# src/main/java/com/zy/asrs/entity/TaskWrk.java
# src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
# src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
# src/main/java/com/zy/asrs/service/TaskWrkService.java
# src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
# src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
# src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
# src/main/java/com/zy/asrs/task/TaskLogScheduler.java
# src/main/java/com/zy/core/MainProcess.java
# src/main/java/com/zy/core/thread/LedThread.java
# src/main/java/com/zy/core/thread/SiemensCrnThread.java
# src/main/java/com/zy/core/thread/SiemensDevpThread.java
# src/main/resources/application-prod.yml
# src/main/resources/application.yml
# src/main/resources/license.lic
# src/main/webapp/static/wcs/js/common.js
# src/main/webapp/static/wcs/js/console.map.js
# src/main/webapp/static/wms/js/common.js
16个文件已添加
177个文件已修改
1 文件已重命名
2个文件已删除
7989 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MapController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/TaskWrkLogController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/dto/AxisBean.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/dto/WorkChartAxis.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/enums/CrnStatusType.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/CrnLatestDataVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/LocChartPie.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ApiConfig.java 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ApiLog.java 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnError.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnOpt.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnStatus.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasCrnp.java 154 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasDevp.java 122 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasErrLog.java 147 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasLocSts.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasPlcerror.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasPlcerrorLog.java 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasWrkIotype.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/BasWrkStatus.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ChartBean.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/CommandInfo.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/CommandInfoLog.java 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/DataResource.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/DeviceError.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocMast.java 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/MatCode.java 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/RowLastno.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/StaDesc.java 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrkLog.java 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrkReport.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ToWmsDTO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewInOutBean.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewLocMapDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java 222 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewStockUseBean.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewWorkInBean.java 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetlLog.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkLastno.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 204 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastLog.java 215 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/Result.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/TaskStatusFeedbackParam.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/wms/WmsResult.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ApiConfigMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ApiLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasPlcerrorLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/CommandInfoMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/DataResourceMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/DeviceErrorMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TaskWrkLogMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TaskWrkReportLogMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/TaskWrkReportMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ApiLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasPlcerrorLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasPlcerrorService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/CommandInfoLogService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/CommandInfoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/DataResourceService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/DeviceErrorService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/StaDescService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/TaskWrkReportLogService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/TaskWrkReportService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ToWmsService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ApiConfigServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasPlcerrorLogServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/CommandInfoServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/DataResourceServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/DeviceErrorServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskWrkLogReportServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskWrkLogServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/TaskWrkReportServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AbstractHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/TaskReportScheduler.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/core/ReturnT.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/core/WcsDispatcher.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/CommandUtils.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/VersionUtils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/CodeBuilder.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/Main.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/AdminInterceptor.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/config/WebConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/entity/Parameter.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/PageParam.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/Shelves.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/annotations/bit.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/annotations/expr.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/annotations/flag.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/annotations/little.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/annotations/size.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/CollectionUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/CommonUtils.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/Http.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/HttpHandler.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/QrCode.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/RandomValidateCodeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/RedisUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/ReflectUtils.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/Struct.java 902 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/Synchro.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/YamlUtils.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/utils/excel/ExcelUtils.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/AuthController.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/BaseController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/RouterController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/DevpThread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/MessageQueue.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/SlaveConnection.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnFingerPosType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnForkPosType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnLiftPosType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnModeType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnStatusType.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/CrnTaskModeType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SlaveType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/DevpSlave.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/command/CommandPackage.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/command/CrnCommand.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/CrnProtocol.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/AbstractInboundHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/HandlerInitializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/OnlineServer.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/cache/ChannelCache.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/handle/PackageServerHandler.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/handle/ProtectorHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/handle/ProtocolDecoder.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/netty/handle/ProtocolEncoder.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/BarcodeThread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/ScaleThread.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/ApiController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/ConfigController.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/HomeController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/HostController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/LicenseCreatorController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/OperateLogController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/PermissionController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/ResourceController.java 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/RoleController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/UserController.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/UserLoginController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Api.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Config.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Host.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/OperateLog.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Permission.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Resource.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Role.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/RolePermission.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/User.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/UserLogin.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/AbstractServerInfos.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/LicenseCheckListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/LicenseCreator.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/LicenseVerify.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/license/WindowsServerInfos.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkReportLogMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/TaskWrkReportMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/wcs和wms接口(2).docx 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MapController.java
@@ -21,11 +21,10 @@
public class MapController extends BaseController {
    @Autowired
    private LocMastService locMastService;
    private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{
    }};
    @Autowired
    private LocMastService locMastService;
    @GetMapping("/map/getData/{lev}/auth")
    @ManagerAuth
src/main/java/com/zy/asrs/controller/TaskWrkLogController.java
@@ -29,7 +29,7 @@
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${wms.TaskExecCallback}")
    @Value("${wms.taskExecCallback}")
    private String TaskExecCallback;
    @Autowired
    private ApiLogService apiLogService;
src/main/java/com/zy/asrs/domain/dto/AxisBean.java
@@ -6,19 +6,23 @@
 *
 */
public class AxisBean {
    private String name;
    private Integer[] data;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer[] getData() {
        return data;
    }
    public void setData(Integer[] data) {
        this.data = data;
    }
    private String name;
    private Integer[] data;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer[] getData() {
        return data;
    }
    public void setData(Integer[] data) {
        this.data = data;
    }
}
src/main/java/com/zy/asrs/domain/dto/WorkChartAxis.java
@@ -6,26 +6,31 @@
 * @date 2018å¹´12月12日
 */
public class WorkChartAxis {
    private String ymd;
    private String ymd;
    private int inqty;
    private int outqty;
    public String getYmd() {
        return ymd;
    }
    public void setYmd(String ymd) {
        this.ymd = ymd;
    }
    public int getInqty() {
        return inqty;
    }
    public void setInqty(int inqty) {
        this.inqty = inqty;
    }
    public int getOutqty() {
        return outqty;
    }
    public void setOutqty(int outqty) {
        this.outqty = outqty;
    }
    public String getYmd() {
        return ymd;
    }
    public void setYmd(String ymd) {
        this.ymd = ymd;
    }
    public int getInqty() {
        return inqty;
    }
    public void setInqty(int inqty) {
        this.inqty = inqty;
    }
    public int getOutqty() {
        return outqty;
    }
    public void setOutqty(int outqty) {
        this.outqty = outqty;
    }
}
src/main/java/com/zy/asrs/domain/enums/CrnStatusType.java
@@ -24,22 +24,15 @@
    ;
    private String desc;
    CrnStatusType(String desc){
    CrnStatusType(String desc) {
        this.desc = desc;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public static CrnStatusType process(Integer ioType){
        if (ioType>100) {
    public static CrnStatusType process(Integer ioType) {
        if (ioType > 100) {
            return MACHINE_PAKOUT;
        } else if (ioType < 100 && ioType!=3 && ioType!=6 && ioType!=11) {
        } else if (ioType < 100 && ioType != 3 && ioType != 6 && ioType != 11) {
            return MACHINE_PAKIN;
        } else if (ioType == 3) {
            return MACHINE_SITE_MOVE;
@@ -50,4 +43,12 @@
        }
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
}
src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java
@@ -21,7 +21,7 @@
    ;
    public static SiteStatusType process(StaProtocol staProtocol){
    public static SiteStatusType process(StaProtocol staProtocol) {
        if (staProtocol == null) {
            return null;
        }
src/main/java/com/zy/asrs/domain/enums/TaskStatusType.java
@@ -2,17 +2,16 @@
public enum TaskStatusType {
    RECEIVE(1,"接收"),
    DISTRIBUTE(2,"派发"),
    COMPLETE(3,"命令完成"),
    CANCEL(4,"取消"),
    OVER(5,"完结")
    ;
    RECEIVE(1, "接收"),
    DISTRIBUTE(2, "派发"),
    COMPLETE(3, "命令完成"),
    CANCEL(4, "取消"),
    OVER(5, "完结");
    public Integer id;
    public String desc;
    TaskStatusType(Integer id, String desc){
    TaskStatusType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
    }
src/main/java/com/zy/asrs/domain/vo/CrnLatestDataVo.java
@@ -21,7 +21,7 @@
    private CrnStatusType crnStatus;
    public String getCrnStatus(){
    public String getCrnStatus() {
        return crnStatus.toString().toLowerCase().replaceAll("_", "-");
    }
src/main/java/com/zy/asrs/domain/vo/LocChartPie.java
@@ -10,28 +10,36 @@
    private int oqty;
    private int uqty;
    private int xqty;
    public int getFqty() {
        return fqty;
    }
    public void setFqty(int fqty) {
        this.fqty = fqty;
    }
    public int getOqty() {
        return oqty;
    }
    public void setOqty(int oqty) {
        this.oqty = oqty;
    }
    public int getUqty() {
        return uqty;
    }
    public void setUqty(int uqty) {
        this.uqty = uqty;
    }
    public int getXqty() {
        return xqty;
    }
    public void setXqty(int xqty) {
        this.xqty = xqty;
    }
    public int getFqty() {
        return fqty;
    }
    public void setFqty(int fqty) {
        this.fqty = fqty;
    }
    public int getOqty() {
        return oqty;
    }
    public void setOqty(int oqty) {
        this.oqty = oqty;
    }
    public int getUqty() {
        return uqty;
    }
    public void setUqty(int uqty) {
        this.uqty = uqty;
    }
    public int getXqty() {
        return xqty;
    }
    public void setXqty(int xqty) {
        this.xqty = xqty;
    }
}
src/main/java/com/zy/asrs/entity/ApiConfig.java
@@ -1,24 +1,20 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
import com.zy.system.entity.User;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
import com.zy.system.entity.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_api_config")
@@ -26,61 +22,62 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * api地址
     */
    @ApiModelProperty(value= "api地址")
    @ApiModelProperty(value = "api地址")
    private String url;
    /**
     * çŠ¶æ€ 0: æ­£å¸¸  1: ç¦ç”¨  
     */
    @ApiModelProperty(value= "状态 0: æ­£å¸¸  1: ç¦ç”¨  ")
    @ApiModelProperty(value = "状态 0: æ­£å¸¸  1: ç¦ç”¨  ")
    private Integer status;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value= "创建时间")
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @ApiModelProperty(value= "更新时间")
    @ApiModelProperty(value = "更新时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    @ApiModelProperty(value = "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("update_by")
    private Long updateBy;
    public ApiConfig() {}
    public ApiConfig() {
    }
    public ApiConfig(String url,Integer status,String memo,Date createTime,Date updateTime,Long createBy,Long updateBy) {
    public ApiConfig(String url, Integer status, String memo, Date createTime, Date updateTime, Long createBy, Long updateBy) {
        this.url = url;
        this.status = status;
        this.memo = memo;
@@ -100,9 +97,11 @@
//            null    // ä¿®æ”¹äººå‘˜
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 0:
                return "正常";
            case 1:
@@ -112,33 +111,33 @@
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getCreateBy$(){
    public String getCreateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getUpdateBy$(){
    public String getUpdateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
src/main/java/com/zy/asrs/entity/ApiLog.java
@@ -1,18 +1,17 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("man_api_log")
@@ -23,102 +22,103 @@
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * æ—¥å¿—编号
     */
    @ApiModelProperty(value= "日志编号")
    @ApiModelProperty(value = "日志编号")
    private String uuid;
    /**
     * åç§°ç©ºé—´
     */
    @ApiModelProperty(value= "名称空间")
    @ApiModelProperty(value = "名称空间")
    private String namespace;
    /**
     * æŽ¥å£åœ°å€
     */
    @ApiModelProperty(value= "接口地址")
    @ApiModelProperty(value = "接口地址")
    private String url;
    /**
     * å¹³å°å¯†é’¥
     */
    @ApiModelProperty(value= "平台密钥")
    @ApiModelProperty(value = "平台密钥")
    private String appkey;
    /**
     * æ—¶é—´æˆ³
     */
    @ApiModelProperty(value= "时间戳")
    @ApiModelProperty(value = "时间戳")
    private String timestamp;
    /**
     * å®¢æˆ·ç«¯IP
     */
    @ApiModelProperty(value= "客户端IP")
    @ApiModelProperty(value = "客户端IP")
    @TableField("client_ip")
    private String clientIp;
    /**
     * è¯·æ±‚内容
     */
    @ApiModelProperty(value= "请求内容")
    @ApiModelProperty(value = "请求内容")
    private String request;
    /**
     * å“åº”内容
     */
    @ApiModelProperty(value= "响应内容")
    @ApiModelProperty(value = "响应内容")
    private String response;
    /**
     * å¼‚常内容
     */
    @ApiModelProperty(value= "异常内容")
    @ApiModelProperty(value = "异常内容")
    private String err;
    /**
     * ç»“æžœ 1: æˆåŠŸ  0: å¤±è´¥  
     */
    @ApiModelProperty(value= "结果 1: æˆåŠŸ  0: å¤±è´¥  ")
    @ApiModelProperty(value = "结果 1: æˆåŠŸ  0: å¤±è´¥  ")
    private Integer result;
    /**
     * çŠ¶æ€ 1: æ­£å¸¸  0: ç¦ç”¨  
     */
    @ApiModelProperty(value= "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    @ApiModelProperty(value = "状态 1: æ­£å¸¸  0: ç¦ç”¨  ")
    private Integer status;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public ApiLog() {}
    public ApiLog() {
    }
    public ApiLog(String uuid,String namespace,String url,String appkey,String timestamp,String clientIp,String request,String response,String err,Integer result,Integer status,Date createTime,Date updateTime,String memo) {
    public ApiLog(String uuid, String namespace, String url, String appkey, String timestamp, String clientIp, String request, String response, String err, Integer result, Integer status, Date createTime, Date updateTime, String memo) {
        this.uuid = uuid;
        this.namespace = namespace;
        this.url = url;
@@ -152,9 +152,11 @@
//            null    // å¤‡æ³¨
//    );
    public String getResult$(){
        if (null == this.result){ return null; }
        switch (this.result){
    public String getResult$() {
        if (null == this.result) {
            return null;
        }
        switch (this.result) {
            case 1:
                return "成功";
            case 0:
@@ -164,9 +166,11 @@
        }
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -176,15 +180,15 @@
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
src/main/java/com/zy/asrs/entity/BasCrnError.java
@@ -22,7 +22,7 @@
    /**
     * å¼‚常代号
     */
    @ApiModelProperty(value= "异常代号")
    @ApiModelProperty(value = "异常代号")
    @TableId(value = "error_code", type = IdType.AUTO)
    @TableField("error_code")
    private Long errorCode;
@@ -30,39 +30,40 @@
    /**
     * å¼‚常描述
     */
    @ApiModelProperty(value= "异常描述")
    @ApiModelProperty(value = "异常描述")
    @TableField("err_name")
    private String errName;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public BasCrnError() {}
    public BasCrnError() {
    }
    public BasCrnError(String errName, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.errName = errName;
@@ -100,64 +101,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
src/main/java/com/zy/asrs/entity/BasCrnOpt.java
@@ -22,116 +22,117 @@
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ä»»åŠ¡å·
     */
    @ApiModelProperty(value= "任务号")
    @ApiModelProperty(value = "任务号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å †åž›æœº
     */
    @ApiModelProperty(value= "堆垛机")
    @ApiModelProperty(value = "堆垛机")
    @TableField("crn_no")
    private Integer crnNo;
    /**
     * ä¸‹å‘æ—¶é—´
     */
    @ApiModelProperty(value= "下发时间")
    @ApiModelProperty(value = "下发时间")
    @TableField("send_time")
    private Date sendTime;
    /**
     * æ¨¡å¼
     */
    @ApiModelProperty(value= "模式")
    @ApiModelProperty(value = "模式")
    private String mode;
    /**
     * æºæŽ’
     */
    @ApiModelProperty(value= "源排")
    @ApiModelProperty(value = "源排")
    @TableField("source_row")
    private Integer sourceRow;
    /**
     * æºåˆ—
     */
    @ApiModelProperty(value= "源列")
    @ApiModelProperty(value = "源列")
    @TableField("source_bay")
    private Integer sourceBay;
    /**
     * æºå±‚
     */
    @ApiModelProperty(value= "源层")
    @ApiModelProperty(value = "源层")
    @TableField("source_lev")
    private Integer sourceLev;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("source_sta")
    private Integer sourceSta;
    /**
     * ç›®æ ‡æŽ’
     */
    @ApiModelProperty(value= "目标排")
    @ApiModelProperty(value = "目标排")
    @TableField("pos_row")
    private Integer posRow;
    /**
     * ç›®æ ‡åˆ—
     */
    @ApiModelProperty(value= "目标列")
    @ApiModelProperty(value = "目标列")
    @TableField("pos_bay")
    private Integer posBay;
    /**
     * ç›®æ ‡å±‚
     */
    @ApiModelProperty(value= "目标层")
    @ApiModelProperty(value = "目标层")
    @TableField("pos_lev")
    private Integer posLev;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("pos_sta")
    private Integer posSta;
    /**
     * å“åº”结果 1: æ­£å¸¸  0: å¤±è´¥  
     */
    @ApiModelProperty(value= "响应结果 1: æ­£å¸¸  0: å¤±è´¥  ")
    @ApiModelProperty(value = "响应结果 1: æ­£å¸¸  0: å¤±è´¥  ")
    private Integer response;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("update_by")
    private Long updateBy;
    public BasCrnOpt() {}
    public BasCrnOpt() {
    }
    public BasCrnOpt(Integer wrkNo,Integer crnNo,Date sendTime,String mode,Integer sourceRow,Integer sourceBay,Integer sourceLev,Integer sourceSta,Integer posRow,Integer posBay,Integer posLev,Integer posSta,Integer response,Date updateTime,Long updateBy) {
    public BasCrnOpt(Integer wrkNo, Integer crnNo, Date sendTime, String mode, Integer sourceRow, Integer sourceBay, Integer sourceLev, Integer sourceSta, Integer posRow, Integer posBay, Integer posLev, Integer posSta, Integer response, Date updateTime, Long updateBy) {
        this.wrkNo = wrkNo;
        this.crnNo = crnNo;
        this.sendTime = sendTime;
@@ -195,15 +196,15 @@
        return sendTime;
    }
    public String getSendTime$(){
        if (Cools.isEmpty(this.sendTime)){
    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }
    public String getSendTime$() {
        if (Cools.isEmpty(this.sendTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime);
    }
    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }
    public String getMode() {
@@ -282,9 +283,15 @@
        return response;
    }
    public String getResponse$(){
        if (null == this.response){ return null; }
        switch (this.response){
    public void setResponse(Integer response) {
        this.response = response;
    }
    public String getResponse$() {
        if (null == this.response) {
            return null;
        }
        switch (this.response) {
            case 1:
                return "正常";
            case 0:
@@ -294,40 +301,36 @@
        }
    }
    public void setResponse(Integer response) {
        this.response = response;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public Long getUpdateBy() {
        return updateBy;
    }
    public String getUpdateBy$(){
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }
    public String getUpdateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }
src/main/java/com/zy/asrs/entity/BasCrnStatus.java
@@ -22,7 +22,7 @@
    /**
     * å·¥ä½œä»£å·
     */
    @ApiModelProperty(value= "状态代号")
    @ApiModelProperty(value = "状态代号")
    @TableId(value = "sts_no", type = IdType.INPUT)
    @TableField("sts_no")
    private String stsNo;
@@ -30,39 +30,40 @@
    /**
     * çŠ¶æ€æè¿°
     */
    @ApiModelProperty(value= "状态描述")
    @ApiModelProperty(value = "状态描述")
    @TableField("sts_desc")
    private String stsDesc;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public BasCrnStatus() {}
    public BasCrnStatus() {
    }
    public BasCrnStatus(String stsDesc, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.stsDesc = stsDesc;
@@ -100,64 +101,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -24,7 +24,7 @@
    /**
     * ç¼–号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    @TableId(value = "crn_no", type = IdType.INPUT)
    @TableField("crn_no")
    private Integer crnNo;
@@ -32,125 +32,126 @@
    /**
     * å¯å…¥
     */
    @ApiModelProperty(value= "可入")
    @ApiModelProperty(value = "可入")
    @TableField("in_enable")
    private String inEnable;
    /**
     * å¯å‡º
     */
    @ApiModelProperty(value= "可出")
    @ApiModelProperty(value = "可出")
    @TableField("out_enable")
    private String outEnable;
    /**
     * çŠ¶æ€
     */
    @ApiModelProperty(value= "状态")
    @ApiModelProperty(value = "状态")
    @TableField("crn_sts")
    private Integer crnSts;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å¼‚常码
     */
    @ApiModelProperty(value= "异常码")
    @ApiModelProperty(value = "异常码")
    @TableField("crn_err")
    private Long crnErr;
    /**
     * æºåº“位
     */
    @ApiModelProperty(value= "源库位")
    @ApiModelProperty(value = "源库位")
    @TableField("frm_locno")
    private String frmLocno;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("frm_sta")
    private Integer frmSta;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("to_sta")
    private Integer toSta;
    /**
     * ç›®æ ‡åº“位
     */
    @ApiModelProperty(value= "目标库位")
    @ApiModelProperty(value = "目标库位")
    @TableField("to_locno")
    private String toLocno;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value= "创建时间")
    @ApiModelProperty(value = "创建时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("hp_mk")
    private String hpMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("retrieve_mk")
    private String retrieveMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctl_hp")
    private String ctlHp;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctl_rest")
    private String ctlRest;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("emp_in")
    private String empIn;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("tank_qty")
    private Integer tankQty;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("tank_qty1")
    private Integer tankQty1;
    public BasCrnp() {}
    public BasCrnp() {
    }
    public BasCrnp(String inEnable,String outEnable,Integer crnSts,Integer wrkNo,Long crnErr,String frmLocno,Integer frmSta,Integer toSta,String toLocno,Long appeUser,Date appeTime,Long modiUser,Date modiTime,String hpMk,String retrieveMk,String ctlHp,String ctlRest,String empIn,Integer tankQty,Integer tankQty1) {
    public BasCrnp(String inEnable, String outEnable, Integer crnSts, Integer wrkNo, Long crnErr, String frmLocno, Integer frmSta, Integer toSta, String toLocno, Long appeUser, Date appeTime, Long modiUser, Date modiTime, String hpMk, String retrieveMk, String ctlHp, String ctlRest, String empIn, Integer tankQty, Integer tankQty1) {
        this.inEnable = inEnable;
        this.outEnable = outEnable;
        this.crnSts = crnSts;
@@ -196,17 +197,18 @@
//            null    // 
//    );
    public String getcrnSts$(){
        if(this.crnSts==1){
    public String getcrnSts$() {
        if (this.crnSts == 1) {
            return "单机";
        }else if(this.crnSts==2){
        } else if (this.crnSts == 2) {
            return "手动";
        }else if(this.crnSts==3){
        } else if (this.crnSts == 3) {
            return "联机";
        }else {
        } else {
            return "未知";
        }
    }
    public Integer getCrnNo() {
        return crnNo;
    }
@@ -259,132 +261,132 @@
        return frmLocno;
    }
    public String getFrmLocno$(){
    public void setFrmLocno(String frmLocno) {
        this.frmLocno = frmLocno;
    }
    public String getFrmLocno$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.frmLocno);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public void setFrmLocno(String frmLocno) {
        this.frmLocno = frmLocno;
    }
    public Integer getFrmSta() {
        return frmSta;
    }
    public String getFrmSta$(){
    public void setFrmSta(Integer frmSta) {
        this.frmSta = frmSta;
    }
    public String getFrmSta$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.frmSta);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public void setFrmSta(Integer frmSta) {
        this.frmSta = frmSta;
    }
    public Integer getToSta() {
        return toSta;
    }
    public String getToSta$(){
    public void setToSta(Integer toSta) {
        this.toSta = toSta;
    }
    public String getToSta$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.toSta);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public void setToSta(Integer toSta) {
        this.toSta = toSta;
    }
    public String getToLocno() {
        return toLocno;
    }
    public String getToLocno$(){
    public void setToLocno(String toLocno) {
        this.toLocno = toLocno;
    }
    public String getToLocno$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.toLocno);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public void setToLocno(String toLocno) {
        this.toLocno = toLocno;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public Long getModiUser() {
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getHpMk() {
src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -24,7 +24,7 @@
    /**
     * ç¼–号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    @TableId(value = "dev_no", type = IdType.INPUT)
    @TableField("dev_no")
    private Integer devNo;
@@ -32,219 +32,221 @@
    /**
     * è®¾å¤‡æè¿°
     */
    @ApiModelProperty(value= "设备描述")
    @ApiModelProperty(value = "设备描述")
    @TableField("dec_desc")
    private String decDesc;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    @TableField("dev_mk")
    private String devMk;
    /**
     * å¯å…¥
     */
    @ApiModelProperty(value= "可入")
    @ApiModelProperty(value = "可入")
    @TableField("in_enable")
    private String inEnable;
    /**
     * å¯å‡º
     */
    @ApiModelProperty(value= "可出")
    @ApiModelProperty(value = "可出")
    @TableField("out_enable")
    private String outEnable;
    /**
     * è‡ªåЍ
     */
    @ApiModelProperty(value= "自动")
    @ApiModelProperty(value = "自动")
    private String autoing;
    /**
     * æœ‰ç‰©
     */
    @ApiModelProperty(value= "有物")
    @ApiModelProperty(value = "有物")
    private String loading;
    /**
     * èƒ½å…¥
     */
    @ApiModelProperty(value= "能入")
    @ApiModelProperty(value = "能入")
    private String canining;
    /**
     * èƒ½å‡º
     */
    @ApiModelProperty(value= "能出")
    @ApiModelProperty(value = "能出")
    private String canouting;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String fronting;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String rearing;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String uping;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String downing;
    /**
     * éœ€æ±‚1
     */
    @ApiModelProperty(value= "需求1")
    @ApiModelProperty(value = "需求1")
    private String inreq1;
    /**
     * éœ€æ±‚2
     */
    @ApiModelProperty(value= "需求2")
    @ApiModelProperty(value = "需求2")
    private String inreq2;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("wrk_no1")
    private Integer wrkNo1;
    /**
     * å®¹å™¨ç±»åž‹
     */
    @ApiModelProperty(value= "容器类型")
    @ApiModelProperty(value = "容器类型")
    @TableField("ctn_type")
    private Integer ctnType;
    /**
     * æ¡å½¢ç 
     */
    @ApiModelProperty(value= "条形码")
    @ApiModelProperty(value = "条形码")
    private String barcode;
    @ApiModelProperty(value= "入库暂存数")
    @ApiModelProperty(value = "入库暂存数")
    @TableField("in_qty")
    private Integer inQty;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Integer row1;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("io_time")
    private Date ioTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String area;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("in_ok")
    private String inOk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("out_ok")
    private String outOk;
    @ApiModelProperty(value= "高低类型{0:未知,1:低库位,2:高库位}")
    @ApiModelProperty(value = "高低类型{0:未知,1:低库位,2:高库位}")
    @TableField("loc_type1")
    private Short locType1;
    @ApiModelProperty(value= "宽窄类型{0:未知,1:窄库位,2:宽库位}")
    @ApiModelProperty(value = "宽窄类型{0:未知,1:窄库位,2:宽库位}")
    @TableField("loc_type2")
    private Short locType2;
    @ApiModelProperty(value= "轻重类型{0:未知,1:轻库位,2:重库位}")
    @ApiModelProperty(value = "轻重类型{0:未知,1:轻库位,2:重库位}")
    @TableField("loc_type3")
    private Short locType3;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("std_qty")
    private Double stdQty;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("min_wt")
    private Double minWt;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("max_wt")
    private Double maxWt;
    /**
     * é‡é‡
     */
    @ApiModelProperty(value= "重量")
    @ApiModelProperty(value = "重量")
    @TableField("gross_wt")
    private Double grossWt;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("cart_pos")
    private Integer cartPos;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("agv_start_pick")
    private Integer agvStartPick;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("agv_target_pick")
    private Integer agvTargetPick;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("agv_start_place")
    private Integer agvStartPlace;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("agv_target_place")
    private Integer agvTargetPlace;
    @ApiModelProperty(value= "异常码")
    @ApiModelProperty(value = "异常码")
    @TableField("sta_err")
    private Integer staErr;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getLocType1$() {
        if (null == this.locType1){ return null; }
        switch (this.locType1){
        if (null == this.locType1) {
            return null;
        }
        switch (this.locType1) {
            case 0:
                return "未知";
            case 1:
@@ -257,8 +259,10 @@
    }
    public String getLocType2$() {
        if (null == this.locType2){ return null; }
        switch (this.locType2){
        if (null == this.locType2) {
            return null;
        }
        switch (this.locType2) {
            case 0:
                return "未知";
            case 1:
@@ -271,8 +275,10 @@
    }
    public String getLocType3$() {
        if (null == this.locType3){ return null; }
        switch (this.locType3){
        if (null == this.locType3) {
            return null;
        }
        switch (this.locType3) {
            case 0:
                return "未知";
            case 1:
@@ -284,33 +290,33 @@
        }
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
src/main/java/com/zy/asrs/entity/BasErrLog.java
@@ -22,155 +22,156 @@
    /**
     * ID
     */
    @ApiModelProperty(value= "ID")
    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ç¼–号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    private String uuid;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å‘生时间
     */
    @ApiModelProperty(value= "发生时间")
    @ApiModelProperty(value = "发生时间")
    @TableField("start_time")
    private Date startTime;
    /**
     * ç»“束时间
     */
    @ApiModelProperty(value= "结束时间")
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    private Date endTime;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value= "工作状态")
    @ApiModelProperty(value = "工作状态")
    @TableField("wrk_sts")
    private Long wrkSts;
    /**
     * å…¥å‡ºåº“类型
     */
    @ApiModelProperty(value= "入出库类型")
    @ApiModelProperty(value = "入出库类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * å †åž›æœº
     */
    @ApiModelProperty(value= "堆垛机")
    @ApiModelProperty(value = "堆垛机")
    @TableField("crn_no")
    private Integer crnNo;
    /**
     * plc
     */
    @ApiModelProperty(value= "plc")
    @ApiModelProperty(value = "plc")
    @TableField("plc_no")
    private Integer plcNo;
    /**
     * ç›®æ ‡åº“位
     */
    @ApiModelProperty(value= "目标库位")
    @ApiModelProperty(value = "目标库位")
    @TableField("loc_no")
    private String locNo;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("sta_no")
    private Integer staNo;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("source_sta_no")
    private Integer sourceStaNo;
    /**
     * æºåº“位
     */
    @ApiModelProperty(value= "源库位")
    @ApiModelProperty(value = "源库位")
    @TableField("source_loc_no")
    private String sourceLocNo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    /**
     * å¼‚常码
     */
    @ApiModelProperty(value= "异常码")
    @ApiModelProperty(value = "异常码")
    @TableField("err_code")
    private Integer errCode;
    /**
     * å¼‚常
     */
    @ApiModelProperty(value= "异常")
    @ApiModelProperty(value = "异常")
    private String error;
    /**
     * å¼‚常情况 1: æœªå¤„理  2: å·²ä¿®å¤  
     */
    @ApiModelProperty(value= "异常情况 1: æœªå¤„理  2: å·²ä¿®å¤  ")
    @ApiModelProperty(value = "异常情况 1: æœªå¤„理  2: å·²ä¿®å¤  ")
    private Integer status;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("create_time")
    private Date createTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    @ApiModelProperty(value = "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("update_by")
    private Long updateBy;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public BasErrLog() {}
    public BasErrLog() {
    }
    public BasErrLog(String uuid,Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer crnNo,Integer plcNo,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo,String barcode,Integer errCode,String error,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
    public BasErrLog(String uuid, Integer wrkNo, Date startTime, Date endTime, Long wrkSts, Integer ioType, Integer crnNo, Integer plcNo, String locNo, Integer staNo, Integer sourceStaNo, String sourceLocNo, String barcode, Integer errCode, String error, Integer status, Date createTime, Long createBy, Date updateTime, Long updateBy, String memo) {
        this.uuid = uuid;
        this.wrkNo = wrkNo;
        this.startTime = startTime;
@@ -246,30 +247,30 @@
        return startTime;
    }
    public String getStartTime$(){
        if (Cools.isEmpty(this.startTime)){
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public String getStartTime$() {
        if (Cools.isEmpty(this.startTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public String getEndTime$(){
        if (Cools.isEmpty(this.endTime)){
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public String getEndTime$() {
        if (Cools.isEmpty(this.endTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public Long getWrkSts() {
@@ -364,9 +365,15 @@
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "未处理";
            case 2:
@@ -376,72 +383,68 @@
        }
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Long getCreateBy() {
        return createBy;
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    public Long getCreateBy() {
        return createBy;
    }
    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }
    public Date getUpdateTime() {
        return updateTime;
    public String getCreateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public Long getUpdateBy() {
        return updateBy;
    }
    public String getUpdateBy$(){
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }
    public String getUpdateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }
    public String getMemo() {
src/main/java/com/zy/asrs/entity/BasLocSts.java
@@ -22,7 +22,7 @@
    /**
     * åº“位状态代号
     */
    @ApiModelProperty(value= "库位状态代号")
    @ApiModelProperty(value = "库位状态代号")
    @TableId(value = "loc_sts", type = IdType.INPUT)
    @TableField("loc_sts")
    private String locSts;
@@ -30,39 +30,40 @@
    /**
     * åº“位状态描述
     */
    @ApiModelProperty(value= "库位状态描述")
    @ApiModelProperty(value = "库位状态描述")
    @TableField("loc_desc")
    private String locDesc;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public BasLocSts() {}
    public BasLocSts() {
    }
    public BasLocSts(String locDesc, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.locDesc = locDesc;
@@ -100,64 +101,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
src/main/java/com/zy/asrs/entity/BasPlcerror.java
@@ -22,7 +22,7 @@
    /**
     * å¼‚常编号
     */
    @ApiModelProperty(value= "异常编号")
    @ApiModelProperty(value = "异常编号")
    @TableId(value = "error_code", type = IdType.INPUT)
    @TableField("error_code")
    private Integer errorCode;
@@ -30,39 +30,40 @@
    /**
     * å¼‚常描述
     */
    @ApiModelProperty(value= "异常描述")
    @ApiModelProperty(value = "异常描述")
    @TableField("error_desc")
    private String errorDesc;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    public BasPlcerror() {}
    public BasPlcerror() {
    }
    public BasPlcerror(Integer errorCode, String errorDesc, Date modiTime, Long modiUser, Date appeTime, Long appeUser) {
        this.errorDesc = errorDesc;
@@ -101,64 +102,64 @@
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getModiUser() {
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
src/main/java/com/zy/asrs/entity/BasPlcerrorLog.java
@@ -1,34 +1,22 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.core.common.SpringUtils;
import com.zy.asrs.service.BasWrkStatusService;
import com.zy.asrs.entity.BasWrkStatus;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.BasWrkIotypeService;
import com.zy.asrs.entity.BasWrkIotype;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
import com.zy.asrs.service.BasWrkStatusService;
import com.zy.system.entity.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
import com.zy.system.entity.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("asr_bas_plcerror_log")
@@ -36,146 +24,147 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value= "开始时间")
    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * ç»“束时间
     */
    @ApiModelProperty(value= "结束时间")
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value= "工作状态")
    @ApiModelProperty(value = "工作状态")
    @TableField("wrk_sts")
    private Long wrkSts;
    /**
     * å…¥å‡ºåº“类型
     */
    @ApiModelProperty(value= "入出库类型")
    @ApiModelProperty(value = "入出库类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * plc
     */
    @ApiModelProperty(value= "plc")
    @ApiModelProperty(value = "plc")
    @TableField("plc_no")
    private Integer plcNo;
    /**
     * ç›®æ ‡åº“位
     */
    @ApiModelProperty(value= "目标库位")
    @ApiModelProperty(value = "目标库位")
    @TableField("loc_no")
    private String locNo;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("sta_no")
    private Integer staNo;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("source_sta_no")
    private Integer sourceStaNo;
    /**
     * æºåº“位
     */
    @ApiModelProperty(value= "源库位")
    @ApiModelProperty(value = "源库位")
    @TableField("source_loc_no")
    private String sourceLocNo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    /**
     * å¼‚常编号
     */
    @ApiModelProperty(value= "异常编号")
    @ApiModelProperty(value = "异常编号")
    @TableField("err_code")
    private Integer errCode;
    /**
     * å¼‚常描述
     */
    @ApiModelProperty(value= "异常描述")
    @ApiModelProperty(value = "异常描述")
    private String err;
    /**
     * å¼‚常情况 1: æœªå¤„理  2: å·²ä¿®å¤  
     */
    @ApiModelProperty(value= "异常情况 1: æœªå¤„理  2: å·²ä¿®å¤  ")
    @ApiModelProperty(value = "异常情况 1: æœªå¤„理  2: å·²ä¿®å¤  ")
    private Integer status;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ·»åŠ äººå‘˜
     */
    @ApiModelProperty(value= "添加人员")
    @ApiModelProperty(value = "添加人员")
    @TableField("create_by")
    private Long createBy;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("update_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("update_by")
    private Long updateBy;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public BasPlcerrorLog() {}
    public BasPlcerrorLog() {
    }
    public BasPlcerrorLog(Integer wrkNo,Date startTime,Date endTime,Long wrkSts,Integer ioType,Integer plcNo,String locNo,Integer staNo,Integer sourceStaNo,String sourceLocNo,String barcode,Integer errCode,String err,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
    public BasPlcerrorLog(Integer wrkNo, Date startTime, Date endTime, Long wrkSts, Integer ioType, Integer plcNo, String locNo, Integer staNo, Integer sourceStaNo, String sourceLocNo, String barcode, Integer errCode, String err, Integer status, Date createTime, Long createBy, Date updateTime, Long updateBy, String memo) {
        this.wrkNo = wrkNo;
        this.startTime = startTime;
        this.endTime = endTime;
@@ -219,41 +208,43 @@
//            null    // å¤‡æ³¨
//    );
    public String getStartTime$(){
        if (Cools.isEmpty(this.startTime)){
    public String getStartTime$() {
        if (Cools.isEmpty(this.startTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
    }
    public String getEndTime$(){
        if (Cools.isEmpty(this.endTime)){
    public String getEndTime$() {
        if (Cools.isEmpty(this.endTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
    }
    public String getWrkSts$(){
    public String getWrkSts$() {
        BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
        BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
        if (!Cools.isEmpty(basWrkStatus)){
        if (!Cools.isEmpty(basWrkStatus)) {
            return String.valueOf(basWrkStatus.getWrkDesc());
        }
        return null;
    }
    public String getIoType$(){
    public String getIoType$() {
        BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
        BasWrkIotype basWrkIotype = service.selectById(this.ioType);
        if (!Cools.isEmpty(basWrkIotype)){
        if (!Cools.isEmpty(basWrkIotype)) {
            return String.valueOf(basWrkIotype.getIoDesc());
        }
        return null;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "未处理";
            case 2:
@@ -263,33 +254,33 @@
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getCreateBy$(){
    public String getCreateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getUpdateBy$(){
    public String getUpdateBy$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.updateBy);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
src/main/java/com/zy/asrs/entity/BasWrkIotype.java
@@ -22,7 +22,7 @@
    /**
     * å…¥å‡ºç±»åž‹ä»£å·
     */
    @ApiModelProperty(value= "入出类型代号")
    @ApiModelProperty(value = "入出类型代号")
    @TableId(value = "io_type", type = IdType.INPUT)
    @TableField("io_type")
    private Integer ioType;
@@ -30,48 +30,49 @@
    /**
     * ä¸»è¦
     */
    @ApiModelProperty(value= "主要")
    @ApiModelProperty(value = "主要")
    @TableField("io_pri")
    private String ioPri;
    /**
     * å…¥å‡ºç±»åž‹æè¿°
     */
    @ApiModelProperty(value= "入出类型描述")
    @ApiModelProperty(value = "入出类型描述")
    @TableField("io_desc")
    private String ioDesc;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public BasWrkIotype() {}
    public BasWrkIotype() {
    }
    public BasWrkIotype(String ioPri,String ioDesc,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
    public BasWrkIotype(String ioPri, String ioDesc, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.ioPri = ioPri;
        this.ioDesc = ioDesc;
        this.modiUser = modiUser;
@@ -117,64 +118,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
src/main/java/com/zy/asrs/entity/BasWrkStatus.java
@@ -22,7 +22,7 @@
    /**
     * ä»£å·
     */
    @ApiModelProperty(value= "代号")
    @ApiModelProperty(value = "代号")
    @TableId(value = "wrk_sts", type = IdType.INPUT)
    @TableField("wrk_sts")
    private Long wrkSts;
@@ -30,41 +30,42 @@
    /**
     * çŠ¶æ€æè¿°
     */
    @ApiModelProperty(value= "状态描述")
    @ApiModelProperty(value = "状态描述")
    @TableField("wrk_desc")
    private String wrkDesc;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public BasWrkStatus() {}
    public BasWrkStatus() {
    }
    public BasWrkStatus(String wrkDesc,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
    public BasWrkStatus(String wrkDesc, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.wrkDesc = wrkDesc;
        this.modiUser = modiUser;
        this.modiTime = modiTime;
@@ -100,64 +101,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
src/main/java/com/zy/asrs/entity/ChartBean.java
@@ -1,19 +1,23 @@
package com.zy.asrs.entity;
public class ChartBean {
    private String name;
    private double y;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getY() {
        return y;
    }
    public void setY(double y) {
        this.y = y;
    }
    private String name;
    private double y;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getY() {
        return y;
    }
    public void setY(double y) {
        this.y = y;
    }
}
src/main/java/com/zy/asrs/entity/CommandInfo.java
@@ -1,18 +1,18 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.zy.core.enums.CommandType;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_command_info")
@@ -20,90 +20,91 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * WMS任务号
     */
    @ApiModelProperty(value= "任务号")
    @ApiModelProperty(value = "任务号")
    @TableField("task_no")
    private String taskNo;
    /**
     * æŒ‡ä»¤ç±»åž‹{1:创建,2:执行,3:完成}
     */
    @ApiModelProperty(value= "指令状态")
    @ApiModelProperty(value = "指令状态")
    @TableField("command_status")
    private Integer commandStatus;
    /**
     * å¼€å§‹æ—¶é—´
     */
    @ApiModelProperty(value= "开始时间")
    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * æŒ‡ä»¤ç±»åž‹
     */
    @ApiModelProperty(value= "指令类型")
    @ApiModelProperty(value = "指令类型")
    @TableField("command_type")
    private Integer commandType;
    /**
     * è®¾å¤‡
     */
    @ApiModelProperty(value= "设备")
    @ApiModelProperty(value = "设备")
    private String device;
    /**
     * è®¾å¤‡æ‰§è¡Œä¿¡æ¯
     */
    @ApiModelProperty(value= "设备执行信息")
    @ApiModelProperty(value = "设备执行信息")
    @TableField("device_log")
    private String deviceLog;
    /**
     * å‘½ä»¤æè¿°
     */
    @ApiModelProperty(value= "命令描述")
    @ApiModelProperty(value = "命令描述")
    @TableField("command_desc")
    private String commandDesc;
    /**
     * å‘½ä»¤JSON
     */
    @ApiModelProperty(value= "命令JSON")
    @ApiModelProperty(value = "命令JSON")
    @TableField("command")
    private String command;
    /**
     * æ‰§è¡Œæ—¶é—´
     */
    @ApiModelProperty(value= "执行时间")
    @ApiModelProperty(value = "执行时间")
    @TableField("execute_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date executeTime;
    /**
     * å®Œæˆæ—¶é—´
     */
    @ApiModelProperty(value= "完成时间")
    @ApiModelProperty(value = "完成时间")
    @TableField("complete_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    public CommandInfo() {}
    public CommandInfo() {
    }
    public CommandInfo(Integer id, Integer wrkNo, String taskNo, Integer commandStatus, Date startTime, Integer commandType, String device, String deviceLog, String commandDesc, String command, Date executeTime, Date completeTime) {
        this.id = id;
@@ -120,22 +121,22 @@
        this.completeTime = completeTime;
    }
    public String getStartTime$(){
        if (Cools.isEmpty(this.startTime)){
    public String getStartTime$() {
        if (Cools.isEmpty(this.startTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
    }
    public String getExecuteTime$(){
        if (Cools.isEmpty(this.executeTime)){
    public String getExecuteTime$() {
        if (Cools.isEmpty(this.executeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime);
    }
    public String getCompleteTime$(){
        if (Cools.isEmpty(this.completeTime)){
    public String getCompleteTime$() {
        if (Cools.isEmpty(this.completeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime);
src/main/java/com/zy/asrs/entity/CommandInfoLog.java
@@ -1,22 +1,18 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.zy.core.enums.CommandType;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_command_info_log")
@@ -24,105 +20,106 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * èµ·ç‚¹ä½ç½®
     */
    @ApiModelProperty(value= "起点位置")
    @ApiModelProperty(value = "起点位置")
    @TableField("start_pos")
    private String startPos;
    /**
     * ç»ˆç‚¹ä½ç½®
     */
    @ApiModelProperty(value= "终点位置")
    @ApiModelProperty(value = "终点位置")
    @TableField("end_pos")
    private String endPos;
    /**
     * æŒ‡ä»¤çŠ¶æ€ 1: åˆ›å»º  2: æ‰§è¡Œ  3: å®Œæˆ  
     */
    @ApiModelProperty(value= "指令状态 1: åˆ›å»º  2: æ‰§è¡Œ  3: å®Œæˆ  ")
    @ApiModelProperty(value = "指令状态 1: åˆ›å»º  2: æ‰§è¡Œ  3: å®Œæˆ  ")
    @TableField("command_status")
    private Integer commandStatus;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value= "创建时间")
    @ApiModelProperty(value = "创建时间")
    @TableField("start_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * æŒ‡ä»¤ç±»åž‹
     */
    @ApiModelProperty(value= "指令类型")
    @ApiModelProperty(value = "指令类型")
    @TableField("command_type")
    private Integer commandType;
    /**
     * è®¾å¤‡
     */
    @ApiModelProperty(value= "设备")
    @ApiModelProperty(value = "设备")
    private String device;
    /**
     * è®¾å¤‡æ‰§è¡Œä¿¡æ¯
     */
    @ApiModelProperty(value= "设备执行信息")
    @ApiModelProperty(value = "设备执行信息")
    @TableField("device_log")
    private String deviceLog;
    /**
     * å‘½ä»¤æè¿°
     */
    @ApiModelProperty(value= "命令描述")
    @ApiModelProperty(value = "命令描述")
    @TableField("command_desc")
    private String commandDesc;
    /**
     * å‘½ä»¤JSON
     */
    @ApiModelProperty(value= "命令JSON")
    @ApiModelProperty(value = "命令JSON")
    private String command;
    /**
     * ä»»åŠ¡å·
     */
    @ApiModelProperty(value= "任务号")
    @ApiModelProperty(value = "任务号")
    @TableField("task_no")
    private String taskNo;
    /**
     * æ‰§è¡Œæ—¶é—´
     */
    @ApiModelProperty(value= "执行时间")
    @ApiModelProperty(value = "执行时间")
    @TableField("execute_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date executeTime;
    /**
     * å®Œæˆæ—¶é—´
     */
    @ApiModelProperty(value= "完成时间")
    @ApiModelProperty(value = "完成时间")
    @TableField("complete_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    public CommandInfoLog() {}
    public CommandInfoLog() {
    }
    public CommandInfoLog(Integer wrkNo,String startPos,String endPos,Integer commandStatus,Date startTime,Integer commandType,String device,String deviceLog,String commandDesc,String command,String taskNo,Date executeTime,Date completeTime) {
    public CommandInfoLog(Integer wrkNo, String startPos, String endPos, Integer commandStatus, Date startTime, Integer commandType, String device, String deviceLog, String commandDesc, String command, String taskNo, Date executeTime, Date completeTime) {
        this.wrkNo = wrkNo;
        this.startPos = startPos;
        this.endPos = endPos;
@@ -154,9 +151,11 @@
//            null    // å®Œæˆæ—¶é—´
//    );
    public String getCommandStatus$(){
        if (null == this.commandStatus){ return null; }
        switch (this.commandStatus){
    public String getCommandStatus$() {
        if (null == this.commandStatus) {
            return null;
        }
        switch (this.commandStatus) {
            case 1:
                return "创建";
            case 2:
@@ -168,22 +167,22 @@
        }
    }
    public String getStartTime$(){
        if (Cools.isEmpty(this.startTime)){
    public String getStartTime$() {
        if (Cools.isEmpty(this.startTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.startTime);
    }
    public String getExecuteTime$(){
        if (Cools.isEmpty(this.executeTime)){
    public String getExecuteTime$() {
        if (Cools.isEmpty(this.executeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime);
    }
    public String getCompleteTime$(){
        if (Cools.isEmpty(this.completeTime)){
    public String getCompleteTime$() {
        if (Cools.isEmpty(this.completeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime);
src/main/java/com/zy/asrs/entity/DataResource.java
@@ -1,16 +1,17 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_data_resource")
@@ -18,31 +19,32 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String data;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String name;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("resource_id")
    private Integer resourceId;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public DataResource() {}
    public DataResource() {
    }
    public DataResource(String data,String name,Integer resourceId,Date createTime,String memo) {
    public DataResource(String data, String name, Integer resourceId, Date createTime, String memo) {
        this.data = data;
        this.name = name;
        this.resourceId = resourceId;
@@ -57,8 +59,8 @@
//            null    // 
//    );
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
src/main/java/com/zy/asrs/entity/DeviceError.java
@@ -1,16 +1,17 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_device_error")
@@ -18,40 +19,41 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * è®¾å¤‡
     */
    @ApiModelProperty(value= "设备")
    @ApiModelProperty(value = "设备")
    private String device;
    /**
     * è®¾å¤‡ID
     */
    @ApiModelProperty(value= "设备ID")
    @ApiModelProperty(value = "设备ID")
    @TableField("device_id")
    private Integer deviceId;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value= "创建时间")
    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * å¼‚常信息
     */
    @ApiModelProperty(value= "异常信息")
    @ApiModelProperty(value = "异常信息")
    private String msg;
    public DeviceError() {}
    public DeviceError() {
    }
    public DeviceError(String device,Integer deviceId,Date createTime,String msg) {
    public DeviceError(String device, Integer deviceId, Date createTime, String msg) {
        this.device = device;
        this.deviceId = deviceId;
        this.createTime = createTime;
@@ -65,8 +67,8 @@
//            null    // å¼‚常信息
//    );
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -21,151 +21,153 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value= "库位号")
    @ApiModelProperty(value = "库位号")
    @TableField("loc_no")
    private String locNo;
    @ApiModelProperty(value= "托盘条码")
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    @ApiModelProperty(value= "数量")
    @ApiModelProperty(value = "数量")
    @ExcelProperty("数量")
    private Double anfme;
    @ApiModelProperty(value= "商品编号")
    @ApiModelProperty(value = "商品编号")
    @ExcelProperty("商品编号")
    private String matnr;
    @ApiModelProperty(value= "商品名称")
    @ApiModelProperty(value = "商品名称")
    @ExcelProperty("商品名称")
    private String maktx;
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    @ExcelProperty("批号")
    private String batch;
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    @ExcelProperty("单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "规格")
    @ApiModelProperty(value = "规格")
    private String specs;
    @ApiModelProperty(value= "型号")
    @ApiModelProperty(value = "型号")
    private String model;
    @ApiModelProperty(value= "颜色")
    @ApiModelProperty(value = "颜色")
    private String color;
    @ApiModelProperty(value= "品牌")
    @ApiModelProperty(value = "品牌")
    private String brand;
    @ApiModelProperty(value= "单位")
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value= "单价")
    @ApiModelProperty(value = "单价")
    private Double price;
    @ApiModelProperty(value= "sku")
    @ApiModelProperty(value = "sku")
    private String sku;
    @ApiModelProperty(value= "单位量")
    @ApiModelProperty(value = "单位量")
    private Double units;
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "产地")
    @ApiModelProperty(value = "产地")
    private String origin;
    @ApiModelProperty(value= "厂家")
    @ApiModelProperty(value = "厂家")
    private String manu;
    @ApiModelProperty(value= "生产日期")
    @ApiModelProperty(value = "生产日期")
    @TableField("manu_date")
    private String manuDate;
    @ApiModelProperty(value= "品项数")
    @ApiModelProperty(value = "品项数")
    @TableField("item_num")
    private String itemNum;
    @ApiModelProperty(value= "安全库存量")
    @ApiModelProperty(value = "安全库存量")
    @TableField("safe_qty")
    private Double safeQty;
    @ApiModelProperty(value= "重量")
    @ApiModelProperty(value = "重量")
    private Double weight;
    @ApiModelProperty(value= "长度")
    @ApiModelProperty(value = "长度")
    private Double length;
    @ApiModelProperty(value= "体积")
    @ApiModelProperty(value = "体积")
    private Double volume;
    @ApiModelProperty(value= "三方编码")
    @ApiModelProperty(value = "三方编码")
    @TableField("three_code")
    private String threeCode;
    @ApiModelProperty(value= "供应商")
    @ApiModelProperty(value = "供应商")
    private String supp;
    @ApiModelProperty(value= "供应商编码")
    @ApiModelProperty(value = "供应商编码")
    @TableField("supp_code")
    private String suppCode;
    @ApiModelProperty(value= "是否批次 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "是否批次 1: æ˜¯  0: å¦  ")
    @TableField("be_batch")
    private Integer beBatch;
    @ApiModelProperty(value= "保质期")
    @ApiModelProperty(value = "保质期")
    @TableField("dead_time")
    private String deadTime;
    @ApiModelProperty(value= "预警天数")
    @ApiModelProperty(value = "预警天数")
    @TableField("dead_warn")
    private Integer deadWarn;
    @ApiModelProperty(value= "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    @ApiModelProperty(value = "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    @ApiModelProperty(value= "要求检验 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    @ApiModelProperty(value= "危险品 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getLocNo$(){
    public String getLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.locNo);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
    public String getBeBatch$() {
        if (null == this.beBatch) {
            return null;
        }
        switch (this.beBatch) {
            case 1:
                return "是";
            case 0:
@@ -175,9 +177,11 @@
        }
    }
    public String getSource$(){
        if (null == this.source){ return null; }
        switch (this.source){
    public String getSource$() {
        if (null == this.source) {
            return null;
        }
        switch (this.source) {
            case 1:
                return "制造";
            case 2:
@@ -189,9 +193,11 @@
        }
    }
    public String getInspect$(){
        if (null == this.inspect){ return null; }
        switch (this.inspect){
    public String getInspect$() {
        if (null == this.inspect) {
            return null;
        }
        switch (this.inspect) {
            case 1:
                return "是";
            case 0:
@@ -201,9 +207,11 @@
        }
    }
    public String getDanger$(){
        if (null == this.danger){ return null; }
        switch (this.danger){
    public String getDanger$() {
        if (null == this.danger) {
            return null;
        }
        switch (this.danger) {
            case 1:
                return "是";
            case 0:
@@ -213,33 +221,33 @@
        }
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
src/main/java/com/zy/asrs/entity/LocMast.java
@@ -25,7 +25,7 @@
    /**
     * åº“位号
     */
    @ApiModelProperty(value= "库位号")
    @ApiModelProperty(value = "库位号")
    @TableId(value = "loc_no", type = IdType.INPUT)
    @TableField("loc_no")
    private String locNo;
@@ -33,153 +33,153 @@
    /**
     * åº“位类型
     */
    @ApiModelProperty(value= "库位类型")
    @ApiModelProperty(value = "库位类型")
    @TableField("whs_type")
    private Long whsType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("plt_type")
    private Integer pltType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_type")
    private Integer ctnType;
    @ApiModelProperty(value= "库位状态")
    @ApiModelProperty(value = "库位状态")
    @TableField("loc_sts")
    private String locSts;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sheet_no")
    private String sheetNo;
    /**
     * å †åž›æœºå·(asr_bas_crnp)
     */
    @ApiModelProperty(value= "堆垛机号")
    @ApiModelProperty(value = "堆垛机号")
    @TableField("crn_no")
    private Integer crnNo;
    /**
     * æŽ’
     */
    @ApiModelProperty(value= "排")
    @ApiModelProperty(value = "排")
    private Integer row1;
    /**
     * åˆ—
     */
    @ApiModelProperty(value= "列")
    @ApiModelProperty(value = "列")
    private Integer bay1;
    /**
     * å±‚
     */
    @ApiModelProperty(value= "层")
    @ApiModelProperty(value = "层")
    private Integer lev1;
    /**
     * æ»¡æ¿
     */
    @ApiModelProperty(value= "满板")
    @ApiModelProperty(value = "满板")
    @TableField("full_plt")
    private String fullPlt;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("loc_type")
    private String locType;
    @ApiModelProperty(value= "高低类型{0:未知,1:低库位,2:高库位}")
    @ApiModelProperty(value = "高低类型{0:未知,1:低库位,2:高库位}")
    @TableField("loc_type1")
    private Short locType1;
    @ApiModelProperty(value= "宽窄类型{0:未知,1:窄库位,2:宽库位}")
    @ApiModelProperty(value = "宽窄类型{0:未知,1:窄库位,2:宽库位}")
    @TableField("loc_type2")
    private Short locType2;
    @ApiModelProperty(value= "轻重类型{0:未知,1:轻库位,2:重库位}")
    @ApiModelProperty(value = "轻重类型{0:未知,1:轻库位,2:重库位}")
    @TableField("loc_type3")
    private Short locType3;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("out_enable")
    private String outEnable;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("io_time")
    private Date ioTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("first_time")
    private Date firstTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_time")
    private Date errorTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_memo")
    private String errorMemo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_kind")
    private Integer ctnKind;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sc_weight")
    private Double scWeight;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("inv_wh")
    private String invWh;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String mk;
    /**
     * æ‰˜ç›˜ç 
     */
    @ApiModelProperty(value= "托盘码")
    @ApiModelProperty(value = "托盘码")
    @TableField("barcode")
    private String barcode;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("Pdc_type")
    private String PdcType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_no")
    private String ctnNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String status;
    @TableField(exist = false)
@@ -189,33 +189,36 @@
    @TableField(exist = false)
    private String emptyContainer;
    public String getEmptyContainer$(){
        if (Cools.isEmpty(this.emptyContainer)){
    public String getEmptyContainer$() {
        if (Cools.isEmpty(this.emptyContainer)) {
            return "";
        }
        if (this.emptyContainer.equals("1")){
        if (this.emptyContainer.equals("1")) {
            return "Y";
        }else {
        } else {
            return "N";
        }
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getFirstTime$(){
        if (Cools.isEmpty(this.firstTime)){
    public String getFirstTime$() {
        if (Cools.isEmpty(this.firstTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.firstTime);
    }
    public String getLocType1$() {
        if (null == this.locType1){ return null; }
        switch (this.locType1){
        if (null == this.locType1) {
            return null;
        }
        switch (this.locType1) {
            case 0:
                return "未知";
            case 1:
@@ -228,8 +231,10 @@
    }
    public String getLocType2$() {
        if (null == this.locType2){ return null; }
        switch (this.locType2){
        if (null == this.locType2) {
            return null;
        }
        switch (this.locType2) {
            case 0:
                return "未知";
            case 1:
@@ -242,8 +247,10 @@
    }
    public String getLocType3$() {
        if (null == this.locType3){ return null; }
        switch (this.locType3){
        if (null == this.locType3) {
            return null;
        }
        switch (this.locType3) {
            case 0:
                return "未知";
            case 1:
@@ -255,49 +262,49 @@
        }
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public String getErrorTime$(){
        if (Cools.isEmpty(this.errorTime)){
    public String getErrorTime$() {
        if (Cools.isEmpty(this.errorTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
    }
    public String getLocSts$(){
    public String getLocSts$() {
        BasLocStsService service = SpringUtils.getBean(BasLocStsService.class);
        BasLocSts basLocSts = service.selectById(this.locSts);
        if (!Cools.isEmpty(basLocSts)){
        if (!Cools.isEmpty(basLocSts)) {
            return String.valueOf(basLocSts.getLocDesc());
        }
        return null;
src/main/java/com/zy/asrs/entity/MatCode.java
@@ -22,7 +22,7 @@
    /**
     * å•†å“ç¼–号
     */
    @ApiModelProperty(value= "商品编号")
    @ApiModelProperty(value = "商品编号")
    @TableId(value = "mat_no", type = IdType.INPUT)
    @TableField("mat_no")
    private String matNo;
@@ -30,143 +30,144 @@
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条形码")
    @ApiModelProperty(value = "条形码")
    private String barcode;
    /**
     * å•†å“åç§°
     */
    @ApiModelProperty(value= "商品名称")
    @ApiModelProperty(value = "商品名称")
    @TableField("mat_name")
    private String matName;
    /**
     * ç‰©æ–™å•位
     */
    @ApiModelProperty(value= "单位")
    @ApiModelProperty(value = "单位")
    private String str1;
    @ApiModelProperty(value= "规格")
    @ApiModelProperty(value = "规格")
    private String str2;
    @ApiModelProperty(value= "品项数")
    @ApiModelProperty(value = "品项数")
    private String str3;
    @ApiModelProperty(value= "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String str4;
    @ApiModelProperty(value= "型号")
    @ApiModelProperty(value = "型号")
    private String str5;
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    private String str6;
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    private String str7;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str8;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str9;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str10;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str11;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str12;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str13;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str14;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str15;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str16;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str17;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str18;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str19;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str20;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str21;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str22;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String str23;
    @ApiModelProperty(value= "重量")
    @ApiModelProperty(value = "重量")
    private Double num1;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Double num2;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Double num3;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Double num4;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Double num5;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Double num6;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Date date1;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Short status;
    public MatCode() {}
    public MatCode() {
    }
    public MatCode(String barcode,String matName,String str1,String str2,String str3,String str4,String str5,String str6,String str7,String str8,String str9,String str10,String str11,String str12,String str13,String str14,String str15,String str16,String str17,String str18,String str19,String str20,String str21,String str22,String str23,Double num1,Double num2,Double num3,Double num4,Double num5,Double num6,Date date1,Long appeUser,Date appeTime,Long modiUser,Date modiTime,Short status) {
    public MatCode(String barcode, String matName, String str1, String str2, String str3, String str4, String str5, String str6, String str7, String str8, String str9, String str10, String str11, String str12, String str13, String str14, String str15, String str16, String str17, String str18, String str19, String str20, String str21, String str22, String str23, Double num1, Double num2, Double num3, Double num4, Double num5, Double num6, Date date1, Long appeUser, Date appeTime, Long modiUser, Date modiTime, Short status) {
        this.barcode = barcode;
        this.matName = matName;
        this.str1 = str1;
@@ -506,79 +507,79 @@
        return date1;
    }
    public String getDate1$(){
        if (Cools.isEmpty(this.date1)){
    public void setDate1(Date date1) {
        this.date1 = date1;
    }
    public String getDate1$() {
        if (Cools.isEmpty(this.date1)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.date1);
    }
    public void setDate1(Date date1) {
        this.date1 = date1;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public Long getModiUser() {
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Short getStatus() {
src/main/java/com/zy/asrs/entity/RowLastno.java
@@ -22,7 +22,7 @@
    /**
     * ç±»åˆ«
     */
    @ApiModelProperty(value= "类别")
    @ApiModelProperty(value = "类别")
    @TableId(value = "whs_type", type = IdType.INPUT)
    @TableField("whs_type")
    private Integer whsType;
@@ -30,79 +30,80 @@
    /**
     * å½“前工作号
     */
    @ApiModelProperty(value= "当前工作号")
    @ApiModelProperty(value = "当前工作号")
    @TableField("wrk_mk")
    private String wrkMk;
    /**
     * å½“前排号
     */
    @ApiModelProperty(value= "当前排号")
    @ApiModelProperty(value = "当前排号")
    @TableField("current_row")
    private Integer currentRow;
    /**
     * èµ·å§‹æŽ’号
     */
    @ApiModelProperty(value= "起始排号")
    @ApiModelProperty(value = "起始排号")
    @TableField("s_row")
    private Integer sRow;
    /**
     * ç»ˆæ­¢æŽ’号
     */
    @ApiModelProperty(value= "终止排号")
    @ApiModelProperty(value = "终止排号")
    @TableField("e_row")
    private Integer eRow;
    /**
     * å †åž›æœºæ•°é‡
     */
    @ApiModelProperty(value= "堆垛机数量")
    @ApiModelProperty(value = "堆垛机数量")
    @TableField("crn_qty")
    private Integer crnQty;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("limint_loc")
    private Integer limintLoc;
    public RowLastno() {}
    public RowLastno() {
    }
    public RowLastno(String wrkMk,Integer currentRow,Integer sRow,Integer eRow,Integer crnQty,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime,Integer limintLoc) {
    public RowLastno(String wrkMk, Integer currentRow, Integer sRow, Integer eRow, Integer crnQty, String memo, Long modiUser, Date modiTime, Long appeUser, Date appeTime, Integer limintLoc) {
        this.wrkMk = wrkMk;
        this.currentRow = currentRow;
        this.sRow = sRow;
@@ -190,64 +191,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public Integer getLimintLoc() {
src/main/java/com/zy/asrs/entity/StaDesc.java
@@ -25,7 +25,7 @@
    /**
     * è·¯å¾„ID
     */
    @ApiModelProperty(value= "路径ID")
    @ApiModelProperty(value = "路径ID")
    @TableId(value = "type_id", type = IdType.AUTO)
    @TableField("type_id")
    private Long typeId;
@@ -33,7 +33,7 @@
    /**
     * å…¥å‡ºåº“类型
     */
    @ApiModelProperty(value= "入出库类型")
    @ApiModelProperty(value = "入出库类型")
    @TableId(value = "type_no", type = IdType.INPUT)
    @TableField("type_no")
    private Integer typeNo;
@@ -41,14 +41,14 @@
    /**
     * ä½œä¸šç±»åž‹
     */
    @ApiModelProperty(value= "作业类型")
    @ApiModelProperty(value = "作业类型")
    @TableField("type_desc")
    private String typeDesc;
    /**
     * ä½œä¸šç«™ç‚¹
     */
    @ApiModelProperty(value= "作业站点")
    @ApiModelProperty(value = "作业站点")
    @TableId(value = "stn_no", type = IdType.INPUT)
    @TableField("stn_no")
    private Integer stnNo;
@@ -56,14 +56,14 @@
    /**
     * ç«™ç‚¹åç§°
     */
    @ApiModelProperty(value= "站点名称")
    @ApiModelProperty(value = "站点名称")
    @TableField("stn_desc")
    private String stnDesc;
    /**
     * å †åž›æœºå·
     */
    @ApiModelProperty(value= "堆垛机号")
    @ApiModelProperty(value = "堆垛机号")
    @TableId(value = "crn_no", type = IdType.INPUT)
    @TableField("crn_no")
    private Integer crnNo;
@@ -71,47 +71,48 @@
    /**
     * å †åž›æœºç«™ç‚¹
     */
    @ApiModelProperty(value= "堆垛机站点")
    @ApiModelProperty(value = "堆垛机站点")
    @TableField("crn_stn")
    private Integer crnStn;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    public StaDesc() {}
    public StaDesc() {
    }
    public StaDesc(String typeDesc,String stnDesc,Integer crnStn,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime) {
    public StaDesc(String typeDesc, String stnDesc, Integer crnStn, String memo, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
        this.typeDesc = typeDesc;
        this.stnDesc = stnDesc;
        this.crnStn = crnStn;
@@ -161,17 +162,17 @@
        return stnNo;
    }
    public String getStnNo$(){
    public void setStnNo(Integer stnNo) {
        this.stnNo = stnNo;
    }
    public String getStnNo$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.stnNo);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public void setStnNo(Integer stnNo) {
        this.stnNo = stnNo;
    }
    public String getStnDesc() {
@@ -186,34 +187,34 @@
        return crnNo;
    }
    public String getCrnNo$(){
    public void setCrnNo(Integer crnNo) {
        this.crnNo = crnNo;
    }
    public String getCrnNo$() {
        BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
        BasCrnp basCrnp = service.selectById(this.crnNo);
        if (!Cools.isEmpty(basCrnp)){
        if (!Cools.isEmpty(basCrnp)) {
            return String.valueOf(basCrnp.getCrnNo());
        }
        return null;
    }
    public void setCrnNo(Integer crnNo) {
        this.crnNo = crnNo;
    }
    public Integer getCrnStn() {
        return crnStn;
    }
    public String getCrnStn$(){
    public void setCrnStn(Integer crnStn) {
        this.crnStn = crnStn;
    }
    public String getCrnStn$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.crnStn);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public void setCrnStn(Integer crnStn) {
        this.crnStn = crnStn;
    }
    public String getMemo() {
@@ -228,68 +229,68 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getTypeNo$() {
        if (Cools.isEmpty(this.typeNo)){
        if (Cools.isEmpty(this.typeNo)) {
            return "";
        }
        BasWrkIotypeService basWrkIotypeService = SpringUtils.getBean(BasWrkIotypeService.class);
src/main/java/com/zy/asrs/entity/TaskWrkLog.java
@@ -1,35 +1,20 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.service.BasWrkIotypeService;
import com.zy.asrs.entity.BasWrkIotype;
import com.core.common.SpringUtils;
import com.zy.system.service.UserService;
import com.zy.system.entity.User;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.core.common.SpringUtils;
import com.zy.asrs.service.BasWrkStatusService;
import com.zy.asrs.entity.BasWrkStatus;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data
@TableName("wcs_task_wrk_log")
@@ -40,136 +25,136 @@
    /**
     * wms任务号
     */
    @ApiModelProperty(value= "wms任务号")
    @ApiModelProperty(value = "wms任务号")
    @TableField("task_no")
    private String taskNo;
    /**
     * ä»»åŠ¡çŠ¶æ€ 1: æŽ¥æ”¶  2: æ´¾å‘  3: å®Œç»“  4: å–消  
     */
    @ApiModelProperty(value= "任务状态 1: æŽ¥æ”¶  2: æ´¾å‘  3: å®Œç»“  4: å–消  ")
    @ApiModelProperty(value = "任务状态 1: æŽ¥æ”¶  2: æ´¾å‘  3: å®Œç»“  4: å–消  ")
    private Integer status;
    /**
     * ä»»åŠ¡å·
     */
    @ApiModelProperty(value= "任务号")
    @ApiModelProperty(value = "任务号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * ä»»åŠ¡æ—¶é—´(接收时间)
     */
    @ApiModelProperty(value= "任务时间(接收时间)")
    @ApiModelProperty(value = "任务时间(接收时间)")
    @TableField("create_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä»»åŠ¡ç±»åž‹
     */
    @ApiModelProperty(value= "任务类型")
    @ApiModelProperty(value = "任务类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * ä¼˜å…ˆçº§
     */
    @ApiModelProperty(value= "优先级")
    @ApiModelProperty(value = "优先级")
    @TableField("io_pri")
    private Double ioPri;
    /**
     * èµ·ç‚¹
     */
    @ApiModelProperty(value= "起点")
    @ApiModelProperty(value = "起点")
    @TableField("start_point")
    private String startPoint;
    /**
     * ç»ˆç‚¹
     */
    @ApiModelProperty(value= "终点")
    @ApiModelProperty(value = "终点")
    @TableField("target_point")
    private String targetPoint;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modiTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    /**
     * æ´¾å‘æ—¶é—´
     */
    @ApiModelProperty(value= "派发时间")
    @ApiModelProperty(value = "派发时间")
    @TableField("assign_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date assignTime;
    /**
     * æ‰§è¡Œæ—¶é—´
     */
    @ApiModelProperty(value= "执行时间")
    @ApiModelProperty(value = "执行时间")
    @TableField("execute_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date executeTime;
    /**
     * å®Œç»“æ—¶é—´
     */
    @ApiModelProperty(value= "完结时间")
    @ApiModelProperty(value = "完结时间")
    @TableField("complete_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    /**
     * å–消时间
     */
    @ApiModelProperty(value= "取消时间")
    @ApiModelProperty(value = "取消时间")
    @TableField("cancel_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value= "工作状态")
    @ApiModelProperty(value = "工作状态")
    @TableField("wrk_sts")
    private Integer wrkSts;
    /**
     * å †åž›æœºå·
     */
    @ApiModelProperty(value= "堆垛机号")
    @ApiModelProperty(value = "堆垛机号")
    @TableField("crn_no")
    private Integer crnNo;
    /**
     * æŒ‡ä»¤æ‰§è¡Œæ­¥åº
     */
    @ApiModelProperty(value= "指令执行步序")
    @ApiModelProperty(value = "指令执行步序")
    @TableField("command_step")
    private Integer commandStep;
@@ -182,9 +167,10 @@
    @TableField("transfer_mark")
    private Integer transferMark;
    public TaskWrkLog() {}
    public TaskWrkLog() {
    }
    public TaskWrkLog(String taskNo,Integer status,Integer wrkNo,Date createTime,Integer ioType,Double ioPri,String startPoint,String targetPoint,Long modiUser,Date modiTime,String memo,String barcode,Date assignTime,Date executeTime,Date completeTime,Date cancelTime,Integer wrkSts,Integer crnNo,Integer commandStep) {
    public TaskWrkLog(String taskNo, Integer status, Integer wrkNo, Date createTime, Integer ioType, Double ioPri, String startPoint, String targetPoint, Long modiUser, Date modiTime, String memo, String barcode, Date assignTime, Date executeTime, Date completeTime, Date cancelTime, Integer wrkSts, Integer crnNo, Integer commandStep) {
        this.taskNo = taskNo;
        this.status = status;
        this.wrkNo = wrkNo;
@@ -205,16 +191,17 @@
        this.crnNo = crnNo;
        this.commandStep = commandStep;
    }
    public TaskWrkLog(TaskWrk taskWrk) {
        this.taskNo = taskWrk.getTaskNo();
        this.status = taskWrk.getStatus();
        this.wrkNo = taskWrk.getWrkNo();
        this.createTime = taskWrk.getCreateTime();
        this.ioType = taskWrk.getIoType();
        if (Cools.isEmpty(taskWrk.getIoPri())){
        if (Cools.isEmpty(taskWrk.getIoPri())) {
            taskWrk.setIoPri(1);
        }
        this.ioPri = (double)taskWrk.getIoPri();
        this.ioPri = (double) taskWrk.getIoPri();
        this.startPoint = taskWrk.getStartPoint();
        this.targetPoint = taskWrk.getTargetPoint();
        this.modiUser = taskWrk.getModiUser();
@@ -252,9 +239,11 @@
//    );
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "接收";
            case 2:
@@ -270,70 +259,70 @@
        }
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public String getIoType$(){
    public String getIoType$() {
        BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
        BasWrkIotype basWrkIotype = service.selectById(this.ioType);
        if (!Cools.isEmpty(basWrkIotype)){
        if (!Cools.isEmpty(basWrkIotype)) {
            return String.valueOf(basWrkIotype.getIoDesc());
        }
        return null;
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAssignTime$(){
        if (Cools.isEmpty(this.assignTime)){
    public String getAssignTime$() {
        if (Cools.isEmpty(this.assignTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.assignTime);
    }
    public String getExecuteTime$(){
        if (Cools.isEmpty(this.executeTime)){
    public String getExecuteTime$() {
        if (Cools.isEmpty(this.executeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.executeTime);
    }
    public String getCompleteTime$(){
        if (Cools.isEmpty(this.completeTime)){
    public String getCompleteTime$() {
        if (Cools.isEmpty(this.completeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.completeTime);
    }
    public String getCancelTime$(){
        if (Cools.isEmpty(this.cancelTime)){
    public String getCancelTime$() {
        if (Cools.isEmpty(this.cancelTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.cancelTime);
    }
    public String getWrkSts$(){
    public String getWrkSts$() {
        BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
        BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
        if (!Cools.isEmpty(basWrkStatus)){
        if (!Cools.isEmpty(basWrkStatus)) {
            return String.valueOf(basWrkStatus.getWrkDesc());
        }
        return null;
src/main/java/com/zy/asrs/entity/TaskWrkReport.java
New file
@@ -0,0 +1,101 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("wcs_task_wrk_report")
public class TaskWrkReport implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * wms任务号
     */
    @ApiModelProperty(value = "wms任务号")
    @TableField("task_no")
    private String taskNo;
    /**
     * ä»»åŠ¡çŠ¶æ€ 1: æŽ¥æ”¶  2: æ´¾å‘  3: å®Œç»“  4: å–消
     */
    @ApiModelProperty(value = "任务状态 1: æŽ¥æ”¶  2: æ´¾å‘  5: å®Œç»“  4: å–消  ")
    private Integer status;
    /**
     * ä»»åŠ¡å·
     */
    @ApiModelProperty(value = "任务号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * ä»»åŠ¡æ—¶é—´(接收时间)
     */
    @ApiModelProperty(value = "任务时间(接收时间)")
    @TableField("create_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä»»åŠ¡ç±»åž‹
     */
    @ApiModelProperty(value = "任务类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * ä¼˜å…ˆçº§
     */
    @ApiModelProperty(value = "优先级")
    @TableField("io_pri")
    private Integer ioPri;
    /**
     * èµ·ç‚¹
     */
    @ApiModelProperty(value = "起点")
    @TableField("start_point")
    private String startPoint;
    /**
     * ç»ˆç‚¹
     */
    @ApiModelProperty(value = "终点")
    @TableField("target_point")
    private String targetPoint;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modiTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value = "条码")
    private String barcode;
}
src/main/java/com/zy/asrs/entity/TaskWrkReportLog.java
New file
@@ -0,0 +1,102 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("wcs_task_wrk_report_log")
public class TaskWrkReportLog implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * wms任务号
     */
    @ApiModelProperty(value = "wms任务号")
    @TableId(value = "task_no", type = IdType.INPUT)
    @TableField("task_no")
    private String taskNo;
    /**
     * ä»»åŠ¡çŠ¶æ€ 1: æŽ¥æ”¶  2: æ´¾å‘  3: å®Œç»“  4: å–消
     */
    @ApiModelProperty(value = "任务状态 1: æŽ¥æ”¶  2: æ´¾å‘  5: å®Œç»“  4: å–消  ")
    private Integer status;
    /**
     * ä»»åŠ¡å·
     */
    @ApiModelProperty(value = "任务号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * ä»»åŠ¡æ—¶é—´(接收时间)
     */
    @ApiModelProperty(value = "任务时间(接收时间)")
    @TableField("create_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * ä»»åŠ¡ç±»åž‹
     */
    @ApiModelProperty(value = "任务类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * ä¼˜å…ˆçº§
     */
    @ApiModelProperty(value = "优先级")
    @TableField("io_pri")
    private Integer ioPri;
    /**
     * èµ·ç‚¹
     */
    @ApiModelProperty(value = "起点")
    @TableField("start_point")
    private String startPoint;
    /**
     * ç»ˆç‚¹
     */
    @ApiModelProperty(value = "终点")
    @TableField("target_point")
    private String targetPoint;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modiTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value = "条码")
    private String barcode;
}
src/main/java/com/zy/asrs/entity/ToWmsDTO.java
@@ -1,6 +1,5 @@
package com.zy.asrs.entity;
import io.swagger.models.auth.In;
import lombok.Data;
import java.util.List;
@@ -24,13 +23,13 @@
    //库位类型
    private Integer locType;
    public ToWmsDTO(String barcode, Integer stationCode, Integer locType){
    public ToWmsDTO(String barcode, Integer stationCode, Integer locType) {
        this.BoxNo = barcode;
        this.stationCode = stationCode;
        this.locType = locType;
    }
    public ToWmsDTO(){
    public ToWmsDTO() {
    }
}
src/main/java/com/zy/asrs/entity/ViewInOutBean.java
@@ -6,7 +6,7 @@
 * @date 2018å¹´11月24日
 */
public class ViewInOutBean {
    private String ymd;
    private String ymd;
    private String source_sta_no;
    private Long sto_qty;
    private Long ret_qty;
@@ -15,59 +15,76 @@
    private int pageSize;
    private String begin_date; //查询开始日期
    private String end_date;   //查询截止日期
    public String getYmd() {
        return ymd;
    }
    public void setYmd(String ymd) {
        this.ymd = ymd;
    }
    public String getSource_sta_no() {
        return source_sta_no;
    }
    public void setSource_sta_no(String source_sta_no) {
        this.source_sta_no = source_sta_no;
    }
    public Long getSto_qty() {
        return sto_qty;
    }
    public void setSto_qty(Long sto_qty) {
        this.sto_qty = sto_qty;
    }
    public Long getRet_qty() {
        return ret_qty;
    }
    public void setRet_qty(Long ret_qty) {
        this.ret_qty = ret_qty;
    }
    public Long getTotal_qty() {
        return total_qty;
    }
    public void setTotal_qty(Long total_qty) {
        this.total_qty = total_qty;
    }
    public int getPageNumber() {
        return pageNumber;
    }
    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public String getBegin_date() {
        return begin_date;
    }
    public void setBegin_date(String begin_date) {
        this.begin_date = begin_date;
    }
    public String getEnd_date() {
        return end_date;
    }
    public void setEnd_date(String end_date) {
        this.end_date = end_date;
    }
    public String getYmd() {
        return ymd;
    }
    public void setYmd(String ymd) {
        this.ymd = ymd;
    }
    public String getSource_sta_no() {
        return source_sta_no;
    }
    public void setSource_sta_no(String source_sta_no) {
        this.source_sta_no = source_sta_no;
    }
    public Long getSto_qty() {
        return sto_qty;
    }
    public void setSto_qty(Long sto_qty) {
        this.sto_qty = sto_qty;
    }
    public Long getRet_qty() {
        return ret_qty;
    }
    public void setRet_qty(Long ret_qty) {
        this.ret_qty = ret_qty;
    }
    public Long getTotal_qty() {
        return total_qty;
    }
    public void setTotal_qty(Long total_qty) {
        this.total_qty = total_qty;
    }
    public int getPageNumber() {
        return pageNumber;
    }
    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public String getBegin_date() {
        return begin_date;
    }
    public void setBegin_date(String begin_date) {
        this.begin_date = begin_date;
    }
    public String getEnd_date() {
        return end_date;
    }
    public void setEnd_date(String end_date) {
        this.end_date = end_date;
    }
}
src/main/java/com/zy/asrs/entity/ViewLocMapDto.java
@@ -47,7 +47,7 @@
    public void setLocSts(String locSts) {
        this.locSts = locSts;
        switch (locSts){
        switch (locSts) {
            case "D":
                this.bgc = "#00B271";
                this.color = "#fff";
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -19,161 +19,161 @@
@Data
public class ViewStayTimeBean {
    private int pageNumber;
    private int pageSize;
    private int pageNumber;
    private int pageSize;
    private int stay_time;
    private int stay_time;
    private String begin_date;
    private String end_date;
    private String begin_date;
    private String end_date;
    private Integer row;
    private Integer row;
    @ApiModelProperty(value= "库位号")
    private String loc_no;
    @ApiModelProperty(value = "库位号")
    private String loc_no;
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    @ApiModelProperty(value= "数量")
    private Double anfme;
    @ApiModelProperty(value = "数量")
    private Double anfme;
    @ApiModelProperty(value= "商品编号")
    private String matnr;
    @ApiModelProperty(value = "商品编号")
    private String matnr;
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    @ApiModelProperty(value = "商品名称")
    private String maktx;
    @ApiModelProperty(value= "批号")
    private String batch;
    @ApiModelProperty(value = "批号")
    private String batch;
    @ApiModelProperty(value= "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "规格")
    private String specs;
    @ApiModelProperty(value = "规格")
    private String specs;
    @ApiModelProperty(value= "型号")
    private String model;
    @ApiModelProperty(value = "型号")
    private String model;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value = "颜色")
    private String color;
    @ApiModelProperty(value= "品牌")
    private String brand;
    @ApiModelProperty(value = "品牌")
    private String brand;
    @ApiModelProperty(value= "单位")
    private String unit;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value= "单价")
    private Double price;
    @ApiModelProperty(value = "单价")
    private Double price;
    @ApiModelProperty(value= "sku")
    private String sku;
    @ApiModelProperty(value = "sku")
    private String sku;
    @ApiModelProperty(value= "单位量")
    private Double units;
    @ApiModelProperty(value = "单位量")
    private Double units;
    @ApiModelProperty(value= "条码")
    private String barcode;
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "产地")
    private String origin;
    @ApiModelProperty(value = "产地")
    private String origin;
    @ApiModelProperty(value= "厂家")
    private String manu;
    @ApiModelProperty(value = "厂家")
    private String manu;
    @ApiModelProperty(value= "生产日期")
    private String manu_date;
    @ApiModelProperty(value = "生产日期")
    private String manu_date;
    @ApiModelProperty(value= "品项数")
    private String item_num;
    @ApiModelProperty(value = "品项数")
    private String item_num;
    @ApiModelProperty(value= "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value = "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value= "重量")
    private Double weight;
    @ApiModelProperty(value = "重量")
    private Double weight;
    @ApiModelProperty(value= "长度")
    private Double length;
    @ApiModelProperty(value = "长度")
    private Double length;
    @ApiModelProperty(value= "体积")
    private Double volume;
    @ApiModelProperty(value = "体积")
    private Double volume;
    @ApiModelProperty(value= "三方编码")
    private String three_code;
    @ApiModelProperty(value = "三方编码")
    private String three_code;
    @ApiModelProperty(value= "供应商")
    private String supp;
    @ApiModelProperty(value = "供应商")
    private String supp;
    @ApiModelProperty(value= "供应商编码")
    private String supp_code;
    @ApiModelProperty(value = "供应商编码")
    private String supp_code;
    @ApiModelProperty(value= "是否批次 1: æ˜¯  0: å¦  ")
    private Integer be_batch;
    @ApiModelProperty(value = "是否批次 1: æ˜¯  0: å¦  ")
    private Integer be_batch;
    @ApiModelProperty(value= "保质期")
    private String dead_time;
    @ApiModelProperty(value = "保质期")
    private String dead_time;
    @ApiModelProperty(value= "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value = "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value= "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    @ApiModelProperty(value = "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    @ApiModelProperty(value= "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    @ApiModelProperty(value = "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    @ApiModelProperty(value= "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    @ApiModelProperty(value = "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    @ApiModelProperty(value= "修改人员")
    private Long modi_user;
    @ApiModelProperty(value = "修改人员")
    private Long modi_user;
    @ApiModelProperty(value= "修改时间")
    private Date modi_time;
    @ApiModelProperty(value = "修改时间")
    private Date modi_time;
    @ApiModelProperty(value= "创建者")
    private Long appe_user;
    @ApiModelProperty(value = "创建者")
    private Long appe_user;
    @ApiModelProperty(value= "添加时间")
    private Date appe_time;
    @ApiModelProperty(value = "添加时间")
    private Date appe_time;
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getModiUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modi_time)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modi_time);
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modi_time)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modi_time);
    }
    public String getAppeUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appe_time)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appe_time);
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appe_time)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appe_time);
    }
}
src/main/java/com/zy/asrs/entity/ViewStockUseBean.java
@@ -6,76 +6,95 @@
 * @date 2018å¹´11月23日
 */
public class ViewStockUseBean {
    private String row1;        //钢架号
    private Long total_qty;        //库位总数
    private Long full_qty;        //在库数量
    private Long null_qty;        //空库位
    private String row1;        //钢架号
    private Long total_qty;        //库位总数
    private Long full_qty;        //在库数量
    private Long null_qty;        //空库位
    private Long forbid_qty;    //禁用库位
    private Long empty_qty;        //空容器
    private Long empty_qty;        //空容器
    private String full_rate;   //在库率
    private String occ_rate;   //使用率
    private int pageNumber;
    private int pageSize;
    public String getRow1() {
        return row1;
    }
    public void setRow1(String row1) {
        this.row1 = row1;
    }
    public Long getTotal_qty() {
        return total_qty;
    }
    public void setTotal_qty(Long total_qty) {
        this.total_qty = total_qty;
    }
    public Long getFull_qty() {
        return full_qty;
    }
    public void setFull_qty(Long full_qty) {
        this.full_qty = full_qty;
    }
    public Long getNull_qty() {
        return null_qty;
    }
    public void setNull_qty(Long null_qty) {
        this.null_qty = null_qty;
    }
    public Long getForbid_qty() {
        return forbid_qty;
    }
    public void setForbid_qty(Long forbid_qty) {
        this.forbid_qty = forbid_qty;
    }
    public Long getEmpty_qty() {
        return empty_qty;
    }
    public void setEmpty_qty(Long empty_qty) {
        this.empty_qty = empty_qty;
    }
    public String getFull_rate() {
        return full_rate;
    }
    public void setFull_rate(String full_rate) {
        this.full_rate = full_rate;
    }
    public String getOcc_rate() {
        return occ_rate;
    }
    public void setOcc_rate(String occ_rate) {
        this.occ_rate = occ_rate;
    }
    public int getPageNumber() {
        return pageNumber;
    }
    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public String getRow1() {
        return row1;
    }
    public void setRow1(String row1) {
        this.row1 = row1;
    }
    public Long getTotal_qty() {
        return total_qty;
    }
    public void setTotal_qty(Long total_qty) {
        this.total_qty = total_qty;
    }
    public Long getFull_qty() {
        return full_qty;
    }
    public void setFull_qty(Long full_qty) {
        this.full_qty = full_qty;
    }
    public Long getNull_qty() {
        return null_qty;
    }
    public void setNull_qty(Long null_qty) {
        this.null_qty = null_qty;
    }
    public Long getForbid_qty() {
        return forbid_qty;
    }
    public void setForbid_qty(Long forbid_qty) {
        this.forbid_qty = forbid_qty;
    }
    public Long getEmpty_qty() {
        return empty_qty;
    }
    public void setEmpty_qty(Long empty_qty) {
        this.empty_qty = empty_qty;
    }
    public String getFull_rate() {
        return full_rate;
    }
    public void setFull_rate(String full_rate) {
        this.full_rate = full_rate;
    }
    public String getOcc_rate() {
        return occ_rate;
    }
    public void setOcc_rate(String occ_rate) {
        this.occ_rate = occ_rate;
    }
    public int getPageNumber() {
        return pageNumber;
    }
    public void setPageNumber(int pageNumber) {
        this.pageNumber = pageNumber;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}
src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -20,174 +20,174 @@
public class ViewWorkInBean {
    private int pageNumber;
    private int pageSize;
    private int pageNumber;
    private int pageSize;
    private int stay_time;
    private int stay_time;
    private String begin_date;
    private String end_date;
    private String query_date;
    private String begin_date;
    private String end_date;
    private String query_date;
    private Integer row;
    private Integer row;
    private String crn_str_time;
    private String crn_end_time;
    private String crn_str_time;
    private String crn_end_time;
    @ApiModelProperty(value= "工作号")
    private Integer wrk_no;
    @ApiModelProperty(value = "工作号")
    private Integer wrk_no;
    @ApiModelProperty(value= "工作时间")
    private Date io_time;
    @ApiModelProperty(value = "工作时间")
    private Date io_time;
    @ApiModelProperty(value= "库位号")
    private String loc_no;
    @ApiModelProperty(value = "库位号")
    private String loc_no;
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    @ApiModelProperty(value= "数量")
    private Double anfme;
    @ApiModelProperty(value = "数量")
    private Double anfme;
    @ApiModelProperty(value= "商品编号")
    private String matnr;
    @ApiModelProperty(value = "商品编号")
    private String matnr;
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    @ApiModelProperty(value = "商品名称")
    private String maktx;
    @ApiModelProperty(value= "批号")
    private String batch;
    @ApiModelProperty(value = "批号")
    private String batch;
    @ApiModelProperty(value= "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "规格")
    private String specs;
    @ApiModelProperty(value = "规格")
    private String specs;
    @ApiModelProperty(value= "型号")
    private String model;
    @ApiModelProperty(value = "型号")
    private String model;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value = "颜色")
    private String color;
    @ApiModelProperty(value= "品牌")
    private String brand;
    @ApiModelProperty(value = "品牌")
    private String brand;
    @ApiModelProperty(value= "单位")
    private String unit;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value= "单价")
    private Double price;
    @ApiModelProperty(value = "单价")
    private Double price;
    @ApiModelProperty(value= "sku")
    private String sku;
    @ApiModelProperty(value = "sku")
    private String sku;
    @ApiModelProperty(value= "单位量")
    private Double units;
    @ApiModelProperty(value = "单位量")
    private Double units;
    @ApiModelProperty(value= "条码")
    private String barcode;
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "产地")
    private String origin;
    @ApiModelProperty(value = "产地")
    private String origin;
    @ApiModelProperty(value= "厂家")
    private String manu;
    @ApiModelProperty(value = "厂家")
    private String manu;
    @ApiModelProperty(value= "生产日期")
    private String manu_date;
    @ApiModelProperty(value = "生产日期")
    private String manu_date;
    @ApiModelProperty(value= "品项数")
    private String item_num;
    @ApiModelProperty(value = "品项数")
    private String item_num;
    @ApiModelProperty(value= "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value = "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value= "重量")
    private Double weight;
    @ApiModelProperty(value = "重量")
    private Double weight;
    @ApiModelProperty(value= "长度")
    private Double length;
    @ApiModelProperty(value = "长度")
    private Double length;
    @ApiModelProperty(value= "体积")
    private Double volume;
    @ApiModelProperty(value = "体积")
    private Double volume;
    @ApiModelProperty(value= "三方编码")
    private String three_code;
    @ApiModelProperty(value = "三方编码")
    private String three_code;
    @ApiModelProperty(value= "供应商")
    private String supp;
    @ApiModelProperty(value = "供应商")
    private String supp;
    @ApiModelProperty(value= "供应商编码")
    private String supp_code;
    @ApiModelProperty(value = "供应商编码")
    private String supp_code;
    @ApiModelProperty(value= "是否批次 1: æ˜¯  0: å¦  ")
    private Integer be_batch;
    @ApiModelProperty(value = "是否批次 1: æ˜¯  0: å¦  ")
    private Integer be_batch;
    @ApiModelProperty(value= "保质期")
    private String dead_time;
    @ApiModelProperty(value = "保质期")
    private String dead_time;
    @ApiModelProperty(value= "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value = "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value= "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    @ApiModelProperty(value = "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    @ApiModelProperty(value= "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    @ApiModelProperty(value = "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    @ApiModelProperty(value= "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    @ApiModelProperty(value = "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    @ApiModelProperty(value= "修改人员")
    private Long modi_user;
    @ApiModelProperty(value = "修改人员")
    private Long modi_user;
    @ApiModelProperty(value= "修改时间")
    private Object modi_time;
    @ApiModelProperty(value = "修改时间")
    private Object modi_time;
    @ApiModelProperty(value= "创建者")
    private Long appe_user;
    @ApiModelProperty(value = "创建者")
    private Long appe_user;
    @ApiModelProperty(value= "添加时间")
    private Object appe_time;
    @ApiModelProperty(value = "添加时间")
    private Object appe_time;
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getModiUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.io_time)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.io_time);
    }
    public String getIoTime$() {
        if (Cools.isEmpty(this.io_time)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.io_time);
    }
    public void setQuery_date(String query_date) {
        this.query_date = query_date;
        if (query_date.contains(" - ")) {
            String[] dates = query_date.split(" - ");
            this.begin_date = dates[0];
            this.end_date = dates[1];
    public void setQuery_date(String query_date) {
        this.query_date = query_date;
        if (query_date.contains(" - ")) {
            String[] dates = query_date.split(" - ");
            this.begin_date = dates[0];
            this.end_date = dates[1];
        }
    }
        }
    }
}
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -19,137 +19,137 @@
    /**
     * ç‰©æ–™
     */
    @ApiModelProperty(value= "商品编号")
    @ApiModelProperty(value = "商品编号")
    private String matnr;
    /**
     * ç‰©æ–™æè¿°
     */
    @ApiModelProperty(value= "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String maktx;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "规格")
    @ApiModelProperty(value = "规格")
    private String lgnum;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "型号")
    @ApiModelProperty(value = "型号")
    private String type;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String color;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    private String supplier;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    private String warehouse;
    /**
     * ä»“库号
     */
    @ApiModelProperty(value= "品项数")
    @ApiModelProperty(value = "品项数")
    private String brand;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value= "数量")
    @ApiModelProperty(value = "数量")
    private Double anfme;
    /**
     * å•位
     */
    @ApiModelProperty(value= "单位")
    @ApiModelProperty(value = "单位")
    private String altme;
    /**
     * æ‰˜ç›˜æ¡ç 
     */
    @ApiModelProperty(value= "托盘条码")
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    /**
     * ç”¨æˆ·ID
     */
    @ApiModelProperty(value= "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String bname;
    @ApiModelProperty(value= "库位号")
    @ApiModelProperty(value = "库位号")
    @TableField("loc_no")
    private String locNo;
    @ApiModelProperty(value= "状态")
    @ApiModelProperty(value = "状态")
    private String status;
    @ApiModelProperty(value= "入出状态")
    @ApiModelProperty(value = "入出状态")
    @TableField("io_status")
    private String ioStatus;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    private String batch;
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -23,255 +23,257 @@
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å·¥ä½œæ—¶é—´
     */
    @ApiModelProperty(value= "工作时间")
    @ApiModelProperty(value = "工作时间")
    @TableField("io_time")
    private Date ioTime;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value= "数量")
    @ApiModelProperty(value = "数量")
    private Double anfme;
    /**
     * æ‰˜ç›˜æ¡ç 
     */
    @ApiModelProperty(value= "托盘条码")
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    /**
     * ç‰©æ–™
     */
    @ApiModelProperty(value= "商品编号")
    @ApiModelProperty(value = "商品编号")
    private String matnr;
    /**
     * ç‰©æ–™æè¿°
     */
    @ApiModelProperty(value= "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String maktx;
    /**
     * æ‰¹å·
     */
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    private String batch;
    /**
     * å•据编号
     */
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * è§„æ ¼
     */
    @ApiModelProperty(value= "规格")
    @ApiModelProperty(value = "规格")
    private String specs;
    /**
     * åž‹å·
     */
    @ApiModelProperty(value= "型号")
    @ApiModelProperty(value = "型号")
    private String model;
    /**
     * é¢œè‰²
     */
    @ApiModelProperty(value= "颜色")
    @ApiModelProperty(value = "颜色")
    private String color;
    /**
     * å“ç‰Œ
     */
    @ApiModelProperty(value= "品牌")
    @ApiModelProperty(value = "品牌")
    private String brand;
    /**
     * å•位
     */
    @ApiModelProperty(value= "单位")
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * å•ä»·
     */
    @ApiModelProperty(value= "单价")
    @ApiModelProperty(value = "单价")
    private Double price;
    /**
     * sku
     */
    @ApiModelProperty(value= "sku")
    @ApiModelProperty(value = "sku")
    private String sku;
    /**
     * å•位量
     */
    @ApiModelProperty(value= "单位量")
    @ApiModelProperty(value = "单位量")
    private Double units;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    /**
     * äº§åœ°
     */
    @ApiModelProperty(value= "产地")
    @ApiModelProperty(value = "产地")
    private String origin;
    /**
     * åނ家
     */
    @ApiModelProperty(value= "厂家")
    @ApiModelProperty(value = "厂家")
    private String manu;
    /**
     * ç”Ÿäº§æ—¥æœŸ
     */
    @ApiModelProperty(value= "生产日期")
    @ApiModelProperty(value = "生产日期")
    @TableField("manu_date")
    private String manuDate;
    /**
     * å®‰å…¨åº“存量
     */
    @ApiModelProperty(value= "安全库存量")
    @ApiModelProperty(value = "安全库存量")
    @TableField("safe_qty")
    private Double safeQty;
    /**
     * é‡é‡
     */
    @ApiModelProperty(value= "重量")
    @ApiModelProperty(value = "重量")
    private Double weight;
    /**
     * é•¿åº¦
     */
    @ApiModelProperty(value= "长度")
    @ApiModelProperty(value = "长度")
    private Double length;
    /**
     * ä½“积
     */
    @ApiModelProperty(value= "体积")
    @ApiModelProperty(value = "体积")
    private Double volume;
    /**
     * ä¸‰æ–¹ç¼–码
     */
    @ApiModelProperty(value= "三方编码")
    @ApiModelProperty(value = "三方编码")
    @TableField("three_code")
    private String threeCode;
    /**
     * ä¾›åº”商
     */
    @ApiModelProperty(value= "供应商")
    @ApiModelProperty(value = "供应商")
    private String supp;
    /**
     * ä¾›åº”商编码
     */
    @ApiModelProperty(value= "供应商编码")
    @ApiModelProperty(value = "供应商编码")
    @TableField("supp_code")
    private String suppCode;
    /**
     * æ˜¯å¦æ‰¹æ¬¡ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "是否批次 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "是否批次 1: æ˜¯  0: å¦  ")
    @TableField("be_batch")
    private Integer beBatch;
    /**
     * ä¿è´¨æœŸ
     */
    @ApiModelProperty(value= "保质期")
    @ApiModelProperty(value = "保质期")
    @TableField("dead_time")
    private String deadTime;
    /**
     * é¢„警天数
     */
    @ApiModelProperty(value= "预警天数")
    @ApiModelProperty(value = "预警天数")
    @TableField("dead_warn")
    private Integer deadWarn;
    /**
     * åˆ¶è´­ 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协
     */
    @ApiModelProperty(value= "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    @ApiModelProperty(value = "制购 1: åˆ¶é€   2: é‡‡è´­  3: å¤–协  ")
    private Integer source;
    /**
     * è¦æ±‚检验 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "要求检验 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "要求检验 1: æ˜¯  0: å¦  ")
    private Integer inspect;
    /**
     * å±é™©å“ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "危险品 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getBeBatch$(){
        if (null == this.beBatch){ return null; }
        switch (this.beBatch){
    public String getBeBatch$() {
        if (null == this.beBatch) {
            return null;
        }
        switch (this.beBatch) {
            case 1:
                return "是";
            case 0:
@@ -281,9 +283,11 @@
        }
    }
    public String getSource$(){
        if (null == this.source){ return null; }
        switch (this.source){
    public String getSource$() {
        if (null == this.source) {
            return null;
        }
        switch (this.source) {
            case 1:
                return "制造";
            case 2:
@@ -295,9 +299,11 @@
        }
    }
    public String getInspect$(){
        if (null == this.inspect){ return null; }
        switch (this.inspect){
    public String getInspect$() {
        if (null == this.inspect) {
            return null;
        }
        switch (this.inspect) {
            case 1:
                return "是";
            case 0:
@@ -307,9 +313,11 @@
        }
    }
    public String getDanger$(){
        if (null == this.danger){ return null; }
        switch (this.danger){
    public String getDanger$() {
        if (null == this.danger) {
            return null;
        }
        switch (this.danger) {
            case 1:
                return "是";
            case 0:
@@ -319,33 +327,33 @@
        }
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -22,209 +22,211 @@
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * å·¥ä½œæ—¶é—´
     */
    @ApiModelProperty(value= "工作时间")
    @ApiModelProperty(value = "工作时间")
    @TableField("io_time")
    private Date ioTime;
    /**
     * æ•°é‡
     */
    @ApiModelProperty(value= "数量")
    @ApiModelProperty(value = "数量")
    private Double anfme;
    /**
     * æ‰˜ç›˜æ¡ç 
     */
    @ApiModelProperty(value= "托盘条码")
    @ApiModelProperty(value = "托盘条码")
    private String zpallet;
    /**
     * ç‰©æ–™
     */
    @ApiModelProperty(value= "商品编号")
    @ApiModelProperty(value = "商品编号")
    private String matnr;
    /**
     * ç‰©æ–™æè¿°
     */
    @ApiModelProperty(value= "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String maktx;
    /**
     * æ‰¹å·
     */
    @ApiModelProperty(value= "批号")
    @ApiModelProperty(value = "批号")
    private String batch;
    /**
     * å•据编号
     */
    @ApiModelProperty(value= "单据编号")
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    /**
     * è§„æ ¼
     */
    @ApiModelProperty(value= "规格")
    @ApiModelProperty(value = "规格")
    private String specs;
    /**
     * åž‹å·
     */
    @ApiModelProperty(value= "型号")
    @ApiModelProperty(value = "型号")
    private String model;
    /**
     * é¢œè‰²
     */
    @ApiModelProperty(value= "颜色")
    @ApiModelProperty(value = "颜色")
    private String color;
    /**
     * å“ç‰Œ
     */
    @ApiModelProperty(value= "品牌")
    @ApiModelProperty(value = "品牌")
    private String brand;
    /**
     * å•位
     */
    @ApiModelProperty(value= "单位")
    @ApiModelProperty(value = "单位")
    private String unit;
    /**
     * å•ä»·
     */
    @ApiModelProperty(value= "单价")
    @ApiModelProperty(value = "单价")
    private Double price;
    /**
     * sku
     */
    @ApiModelProperty(value= "sku")
    @ApiModelProperty(value = "sku")
    private String sku;
    /**
     * å•位量
     */
    @ApiModelProperty(value= "单位量")
    @ApiModelProperty(value = "单位量")
    private Double units;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    /**
     * äº§åœ°
     */
    @ApiModelProperty(value= "产地")
    @ApiModelProperty(value = "产地")
    private String origin;
    /**
     * å®‰å…¨åº“存量
     */
    @ApiModelProperty(value= "安全库存量")
    @ApiModelProperty(value = "安全库存量")
    @TableField("safe_qty")
    private Double safeQty;
    /**
     * é‡é‡
     */
    @ApiModelProperty(value= "重量")
    @ApiModelProperty(value = "重量")
    private Double weight;
    /**
     * é•¿åº¦
     */
    @ApiModelProperty(value= "长度")
    @ApiModelProperty(value = "长度")
    private Double length;
    /**
     * ä½“积
     */
    @ApiModelProperty(value= "体积")
    @ApiModelProperty(value = "体积")
    private Double volume;
    /**
     * ä¸‰æ–¹ç¼–码
     */
    @ApiModelProperty(value= "三方编码")
    @ApiModelProperty(value = "三方编码")
    @TableField("three_code")
    private String threeCode;
    /**
     * ä¾›åº”商
     */
    @ApiModelProperty(value= "供应商")
    @ApiModelProperty(value = "供应商")
    private String supp;
    /**
     * ä¾›åº”商编码
     */
    @ApiModelProperty(value= "供应商编码")
    @ApiModelProperty(value = "供应商编码")
    @TableField("supp_code")
    private String suppCode;
    /**
     * å±é™©å“ 1: æ˜¯  0: å¦
     */
    @ApiModelProperty(value= "危险品 1: æ˜¯  0: å¦  ")
    @ApiModelProperty(value = "危险品 1: æ˜¯  0: å¦  ")
    private Integer danger;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getDanger$(){
        if (null == this.danger){ return null; }
        switch (this.danger){
    public String getDanger$() {
        if (null == this.danger) {
            return null;
        }
        switch (this.danger) {
            case 1:
                return "是";
            case 0:
@@ -234,33 +236,33 @@
        }
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
src/main/java/com/zy/asrs/entity/WrkLastno.java
@@ -22,7 +22,7 @@
    /**
     * ç±»åž‹
     */
    @ApiModelProperty(value= "类型")
    @ApiModelProperty(value = "类型")
    @TableId(value = "wrk_mk", type = IdType.INPUT)
    @TableField("wrk_mk")
    private Integer wrkMk;
@@ -30,62 +30,63 @@
    /**
     * å½“前ID
     */
    @ApiModelProperty(value= "当前ID")
    @ApiModelProperty(value = "当前ID")
    @TableField("wrk_no")
    private Integer wrkNo;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    /**
     * èµ·å§‹ID
     */
    @ApiModelProperty(value= "起始ID")
    @ApiModelProperty(value = "起始ID")
    @TableField("s_no")
    private Integer sNo;
    /**
     * ç»ˆæ­¢ID
     */
    @ApiModelProperty(value= "终止ID")
    @ApiModelProperty(value = "终止ID")
    @TableField("e_no")
    private Integer eNo;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    @TableField("memo_m")
    private String memoM;
    public WrkLastno() {}
    public WrkLastno() {
    }
    public WrkLastno(Integer wrkNo,Long modiUser,Date modiTime,Long appeUser,Date appeTime,Integer sNo,Integer eNo,String memoM) {
    public WrkLastno(Integer wrkNo, Long modiUser, Date modiTime, Long appeUser, Date appeTime, Integer sNo, Integer eNo, String memoM) {
        this.wrkNo = wrkNo;
        this.modiUser = modiUser;
        this.modiTime = modiTime;
@@ -127,64 +128,64 @@
        return modiUser;
    }
    public String getModiUser$(){
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setModiUser(Long modiUser) {
        this.modiUser = modiUser;
    }
    public Date getModiTime() {
        return modiTime;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public void setModiTime(Date modiTime) {
        this.modiTime = modiTime;
    }
    public Long getAppeUser() {
        return appeUser;
    }
    public String getAppeUser$(){
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public void setAppeUser(Long appeUser) {
        this.appeUser = appeUser;
    }
    public Date getAppeTime() {
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public void setAppeTime(Date appeTime) {
        this.appeTime = appeTime;
    }
    public Integer getSNo() {
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -8,7 +8,9 @@
import com.core.common.SpringUtils;
import com.zy.asrs.mapper.BasWrkIotypeMapper;
import com.zy.asrs.mapper.BasWrkStatusMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.LocMastService;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
@@ -29,307 +31,307 @@
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableId(value = "wrk_no", type = IdType.INPUT)
    @TableField("wrk_no")
    private Integer wrkNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("inv_wh")
    private String invWh;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Date ymd;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String mk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("whs_type")
    private Integer whsType;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value= "工作状态")
    @ApiModelProperty(value = "工作状态")
    @TableField("wrk_sts")
    private Long wrkSts;
    /**
     * å…¥å‡ºåº“类型
     */
    @ApiModelProperty(value= "入出库类型")
    @ApiModelProperty(value = "入出库类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * å †åž›æœº
     */
    @ApiModelProperty(value= "堆垛机")
    @ApiModelProperty(value = "堆垛机")
    @TableField("crn_no")
    private Integer crnNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sheet_no")
    private String sheetNo;
    /**
     * ä¼˜å…ˆçº§
     */
    @ApiModelProperty(value= "优先级")
    @ApiModelProperty(value = "优先级")
    @TableField("io_pri")
    private Double ioPri;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("wrk_date")
    private Date wrkDate;
    /**
     * ç›®æ ‡åº“位
     */
    @ApiModelProperty(value= "目标库位")
    @ApiModelProperty(value = "目标库位")
    @TableField("loc_no")
    private String locNo;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("sta_no")
    private Integer staNo;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("source_sta_no")
    private Integer sourceStaNo;
    /**
     * æºåº“位
     */
    @ApiModelProperty(value= "源库位")
    @ApiModelProperty(value = "源库位")
    @TableField("source_loc_no")
    private String sourceLocNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("loc_sts")
    private String locSts;
    /**
     * æ‹£æ–™
     */
    @ApiModelProperty(value= "拣料")
    @ApiModelProperty(value = "拣料")
    private String picking;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("link_mis")
    private String linkMis;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("online_yn")
    private String onlineYn;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("upd_mk")
    private String updMk;
    /**
     * é€€å‡º
     */
    @ApiModelProperty(value= "退出")
    @ApiModelProperty(value = "退出")
    @TableField("exit_mk")
    private String exitMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * ç©ºæ¿
     */
    @ApiModelProperty(value= "空板")
    @ApiModelProperty(value = "空板")
    @TableField("empty_mk")
    private String emptyMk;
    /**
     * å·¥ä½œæ—¶é—´
     */
    @ApiModelProperty(value= "工作时间")
    @ApiModelProperty(value = "工作时间")
    @TableField("io_time")
    private Date ioTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_type")
    private Integer ctnType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String packed;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ove_mk")
    private String oveMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("mtn_type")
    private Double mtnType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("user_no")
    private String userNo;
    /**
     * å †åž›æœºå¯åŠ¨æ—¶é—´
     */
    @ApiModelProperty(value= "堆垛机启动时间")
    @ApiModelProperty(value = "堆垛机启动时间")
    @TableField("crn_str_time")
    private Date crnStrTime;
    /**
     * å †åž›æœºåœæ­¢æ—¶é—´
     */
    @ApiModelProperty(value= "堆垛机停止时间")
    @ApiModelProperty(value = "堆垛机停止时间")
    @TableField("crn_end_time")
    private Date crnEndTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("plc_str_time")
    private Date plcStrTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("crn_pos_time")
    private Date crnPosTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("load_time")
    private Double loadTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("exp_time")
    private Double expTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ref_wrkno")
    private Double refWrkno;
    /**
     * æ‹£æ–™æ—¶é—´
     */
    @ApiModelProperty(value= "拣料时间")
    @ApiModelProperty(value = "拣料时间")
    @TableField("ref_iotime")
    private Date refIotime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("pause_mk")
    private String pauseMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_time")
    private Date errorTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_memo")
    private String errorMemo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_kind")
    private Integer ctnKind;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("manu_type")
    private String manuType;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value= "备注")
    @ApiModelProperty(value = "备注")
    private String memo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sc_weight")
    private Double scWeight;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_mk")
    private String logMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_err_time")
    private Date logErrTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_err_memo")
    private String logErrMemo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("Pdc_type")
    private String PdcType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_no")
    private String ctnNo;
    /**
     * æ»¡æ¿
     */
    @ApiModelProperty(value= "满板")
    @ApiModelProperty(value = "满板")
    @TableField("full_plt")
    private String fullPlt;
    /**
     * wms任务号
     */
    @ApiModelProperty(value= "wms任务号")
    @ApiModelProperty(value = "wms任务号")
    @TableField("wms_wrk_no")
    private String taskNo;
    /**
     * ç»“束时间
     */
    @ApiModelProperty(value= "结束时间")
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    //命令list
    @TableField(exist = false)
    private List<CommandInfo> children;
    public String getWrkSts$(){
    public String getWrkSts$() {
        BasWrkStatusMapper mapper = SpringUtils.getBean(BasWrkStatusMapper.class);
        BasWrkStatus entity = mapper.selectById(this.wrkSts);
        if (entity != null) {
@@ -338,7 +340,7 @@
        return null;
    }
    public String getIoType$(){
    public String getIoType$() {
        BasWrkIotypeMapper mapper = SpringUtils.getBean(BasWrkIotypeMapper.class);
        BasWrkIotype entity = mapper.selectById(this.ioType);
        if (entity != null) {
@@ -347,127 +349,127 @@
        return null;
    }
    public String getYmd$(){
        if (Cools.isEmpty(this.ymd)){
    public String getYmd$() {
        if (Cools.isEmpty(this.ymd)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ymd);
    }
    public String getCrnNo$(){
    public String getCrnNo$() {
        BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
        BasCrnp basCrnp = service.selectById(this.crnNo);
        if (!Cools.isEmpty(basCrnp)){
        if (!Cools.isEmpty(basCrnp)) {
            return String.valueOf(basCrnp.getCrnNo());
        }
        return null;
    }
    public String getWrkDate$(){
        if (Cools.isEmpty(this.wrkDate)){
    public String getWrkDate$() {
        if (Cools.isEmpty(this.wrkDate)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.wrkDate);
    }
    public String getLocNo$(){
    public String getLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.locNo);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getStaNo$(){
    public String getStaNo$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.staNo);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public String getSourceStaNo$(){
    public String getSourceStaNo$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.sourceStaNo);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public String getSourceLocNo$(){
    public String getSourceLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.sourceLocNo);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getCrnStrTime$(){
        if (Cools.isEmpty(this.crnStrTime)){
    public String getCrnStrTime$() {
        if (Cools.isEmpty(this.crnStrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnStrTime);
    }
    public String getCrnEndTime$(){
        if (Cools.isEmpty(this.crnEndTime)){
    public String getCrnEndTime$() {
        if (Cools.isEmpty(this.crnEndTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnEndTime);
    }
    public String getPlcStrTime$(){
        if (Cools.isEmpty(this.plcStrTime)){
    public String getPlcStrTime$() {
        if (Cools.isEmpty(this.plcStrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.plcStrTime);
    }
    public String getCrnPosTime$(){
        if (Cools.isEmpty(this.crnPosTime)){
    public String getCrnPosTime$() {
        if (Cools.isEmpty(this.crnPosTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnPosTime);
    }
    public String getRefIotime$(){
        if (Cools.isEmpty(this.refIotime)){
    public String getRefIotime$() {
        if (Cools.isEmpty(this.refIotime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.refIotime);
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
@@ -477,15 +479,15 @@
        return appeTime;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public String getErrorTime$(){
        if (Cools.isEmpty(this.errorTime)){
    public String getErrorTime$() {
        if (Cools.isEmpty(this.errorTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
@@ -498,15 +500,15 @@
        this.errorMemo = errorMemo;
    }
    public String getLogErrTime$(){
        if (Cools.isEmpty(this.logErrTime)){
    public String getLogErrTime$() {
        if (Cools.isEmpty(this.logErrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
    }
    public String getEndTime$(){
        if (Cools.isEmpty(this.endTime)){
    public String getEndTime$() {
        if (Cools.isEmpty(this.endTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -26,492 +26,493 @@
    /**
     * ç¼–号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * å·¥ä½œå·
     */
    @ApiModelProperty(value= "工作号")
    @ApiModelProperty(value = "工作号")
    @TableField("wrk_no")
    private Integer wrkNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("inv_wh")
    private String invWh;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private Date ymd;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String mk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("whs_type")
    private Integer whsType;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value= "工作状态")
    @ApiModelProperty(value = "工作状态")
    @TableField("wrk_sts")
    private Long wrkSts;
    /**
     * å…¥å‡ºåº“类型
     */
    @ApiModelProperty(value= "入出库类型")
    @ApiModelProperty(value = "入出库类型")
    @TableField("io_type")
    private Integer ioType;
    /**
     * å †åž›æœºå·
     */
    @ApiModelProperty(value= "堆垛机号")
    @ApiModelProperty(value = "堆垛机号")
    @TableField("crn_no")
    private Integer crnNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sheet_no")
    private String sheetNo;
    /**
     * ä¼˜å…ˆçº§
     */
    @ApiModelProperty(value= "优先级")
    @ApiModelProperty(value = "优先级")
    @TableField("io_pri")
    private Double ioPri;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("wrk_date")
    private Date wrkDate;
    /**
     * ç›®æ ‡åº“位
     */
    @ApiModelProperty(value= "目标库位")
    @ApiModelProperty(value = "目标库位")
    @TableField("loc_no")
    private String locNo;
    /**
     * ç›®æ ‡ç«™
     */
    @ApiModelProperty(value= "目标站")
    @ApiModelProperty(value = "目标站")
    @TableField("sta_no")
    private Integer staNo;
    /**
     * æºç«™
     */
    @ApiModelProperty(value= "源站")
    @ApiModelProperty(value = "源站")
    @TableField("source_sta_no")
    private Integer sourceStaNo;
    /**
     * æºåº“位
     */
    @ApiModelProperty(value= "源库位")
    @ApiModelProperty(value = "源库位")
    @TableField("source_loc_no")
    private String sourceLocNo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("loc_sts")
    private String locSts;
    /**
     * æ‹£æ–™
     */
    @ApiModelProperty(value= "拣料")
    @ApiModelProperty(value = "拣料")
    private String picking;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("link_mis")
    private String linkMis;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("online_yn")
    private String onlineYn;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("upd_mk")
    private String updMk;
    /**
     * é€€å‡º
     */
    @ApiModelProperty(value= "退出")
    @ApiModelProperty(value = "退出")
    @TableField("exit_mk")
    private String exitMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("plt_type")
    private Integer pltType;
    /**
     * ç©ºæ¿
     */
    @ApiModelProperty(value= "空板")
    @ApiModelProperty(value = "空板")
    @TableField("empty_mk")
    private String emptyMk;
    /**
     * å·¥ä½œæ—¶é—´
     */
    @ApiModelProperty(value= "工作时间")
    @ApiModelProperty(value = "工作时间")
    @TableField("io_time")
    private Date ioTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_type")
    private Integer ctnType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    private String packed;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ove_mk")
    private String oveMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("mtn_type")
    private Double mtnType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("user_no")
    private String userNo;
    /**
     * å †åž›æœºå¯åŠ¨æ—¶é—´
     */
    @ApiModelProperty(value= "堆垛机启动时间")
    @ApiModelProperty(value = "堆垛机启动时间")
    @TableField("crn_str_time")
    private Date crnStrTime;
    /**
     * å †åž›æœºåœæ­¢æ—¶é—´
     */
    @ApiModelProperty(value= "堆垛机停止时间")
    @ApiModelProperty(value = "堆垛机停止时间")
    @TableField("crn_end_time")
    private Date crnEndTime;
    /**
     * æ‹£æ–™æ—¶é—´
     */
    @ApiModelProperty(value= "拣料时间")
    @ApiModelProperty(value = "拣料时间")
    @TableField("plc_str_time")
    private Date plcStrTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("crn_pos_time")
    private Date crnPosTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("load_time")
    private Double loadTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("exp_time")
    private Double expTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ref_wrkno")
    private Double refWrkno;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ref_iotime")
    private Date refIotime;
    /**
     * ä¿®æ”¹äººå‘˜
     */
    @ApiModelProperty(value= "修改人员")
    @ApiModelProperty(value = "修改人员")
    @TableField("modi_user")
    private Long modiUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @ApiModelProperty(value= "修改时间")
    @ApiModelProperty(value = "修改时间")
    @TableField("modi_time")
    private Date modiTime;
    /**
     * åˆ›å»ºè€…
     */
    @ApiModelProperty(value= "创建者")
    @ApiModelProperty(value = "创建者")
    @TableField("appe_user")
    private Long appeUser;
    /**
     * æ·»åŠ æ—¶é—´
     */
    @ApiModelProperty(value= "添加时间")
    @ApiModelProperty(value = "添加时间")
    @TableField("appe_time")
    private Date appeTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("pause_mk")
    private String pauseMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_time")
    private Date errorTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("error_memo")
    private String errorMemo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_kind")
    private Integer ctnKind;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("manu_type")
    private String manuType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("memo")
    private String memo;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("sc_weight")
    private Double scWeight;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_mk")
    private String logMk;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_err_time")
    private Date logErrTime;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("log_err_memo")
    private String logErrMemo;
    /**
     * æ¡ç 
     */
    @ApiModelProperty(value= "条码")
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("Pdc_type")
    private String PdcType;
    @ApiModelProperty(value= "")
    @ApiModelProperty(value = "")
    @TableField("ctn_no")
    private String ctnNo;
    /**
     * æ»¡æ¿
     */
    @ApiModelProperty(value= "满板")
    @ApiModelProperty(value = "满板")
    @TableField("full_plt")
    private String fullPlt;
    /**
     * ç©¿æ¢­è½¦
     */
    @ApiModelProperty(value= "两向穿梭车")
    @ApiModelProperty(value = "两向穿梭车")
    @TableField("ste_no")
    private Integer steNo;
    /**
     * ç©¿æ¢­è½¦
     */
    @ApiModelProperty(value= "四向穿梭车")
    @ApiModelProperty(value = "四向穿梭车")
    @TableField("shuttle_no")
    private Integer shuttleNo;
    /**
     * ç»“束时间
     */
    @ApiModelProperty(value= "结束时间")
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    public WrkMastLog() {}
    public WrkMastLog() {
    }
    public String getWrkNo$(){
    public String getWrkNo$() {
        WrkMastService service = SpringUtils.getBean(WrkMastService.class);
        WrkMast wrkMast = service.selectById(this.wrkNo);
        if (!Cools.isEmpty(wrkMast)){
        if (!Cools.isEmpty(wrkMast)) {
            return String.valueOf(wrkMast.getWrkNo());
        }
        return null;
    }
    public String getYmd$(){
        if (Cools.isEmpty(this.ymd)){
    public String getYmd$() {
        if (Cools.isEmpty(this.ymd)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ymd);
    }
    public String getWrkSts$(){
    public String getWrkSts$() {
        BasWrkStatusService service = SpringUtils.getBean(BasWrkStatusService.class);
        BasWrkStatus basWrkStatus = service.selectById(this.wrkSts);
        if (!Cools.isEmpty(basWrkStatus)){
        if (!Cools.isEmpty(basWrkStatus)) {
            return String.valueOf(basWrkStatus.getWrkDesc());
        }
        return null;
    }
    public String getIoType$(){
    public String getIoType$() {
        BasWrkIotypeService service = SpringUtils.getBean(BasWrkIotypeService.class);
        BasWrkIotype basWrkIotype = service.selectById(this.ioType);
        if (!Cools.isEmpty(basWrkIotype)){
        if (!Cools.isEmpty(basWrkIotype)) {
            return String.valueOf(basWrkIotype.getIoDesc());
        }
        return null;
    }
    public String getCrnNo$(){
    public String getCrnNo$() {
        BasCrnpService service = SpringUtils.getBean(BasCrnpService.class);
        BasCrnp basCrnp = service.selectById(this.crnNo);
        if (!Cools.isEmpty(basCrnp)){
        if (!Cools.isEmpty(basCrnp)) {
            return String.valueOf(basCrnp.getCrnNo());
        }
        return null;
    }
    public String getWrkDate$(){
        if (Cools.isEmpty(this.wrkDate)){
    public String getWrkDate$() {
        if (Cools.isEmpty(this.wrkDate)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.wrkDate);
    }
    public String getLocNo$(){
    public String getLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.locNo);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getStaNo$(){
    public String getStaNo$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.staNo);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public String getSourceStaNo$(){
    public String getSourceStaNo$() {
        BasDevpService service = SpringUtils.getBean(BasDevpService.class);
        BasDevp basDevp = service.selectById(this.sourceStaNo);
        if (!Cools.isEmpty(basDevp)){
        if (!Cools.isEmpty(basDevp)) {
            return String.valueOf(basDevp.getDevNo());
        }
        return null;
    }
    public String getSourceLocNo$(){
    public String getSourceLocNo$() {
        LocMastService service = SpringUtils.getBean(LocMastService.class);
        LocMast locMast = service.selectById(this.sourceLocNo);
        if (!Cools.isEmpty(locMast)){
        if (!Cools.isEmpty(locMast)) {
            return String.valueOf(locMast.getLocNo());
        }
        return null;
    }
    public String getIoTime$(){
        if (Cools.isEmpty(this.ioTime)){
    public String getIoTime$() {
        if (Cools.isEmpty(this.ioTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
    }
    public String getCrnStrTime$(){
        if (Cools.isEmpty(this.crnStrTime)){
    public String getCrnStrTime$() {
        if (Cools.isEmpty(this.crnStrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnStrTime);
    }
    public String getCrnEndTime$(){
        if (Cools.isEmpty(this.crnEndTime)){
    public String getCrnEndTime$() {
        if (Cools.isEmpty(this.crnEndTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnEndTime);
    }
    public String getPlcStrTime$(){
        if (Cools.isEmpty(this.plcStrTime)){
    public String getPlcStrTime$() {
        if (Cools.isEmpty(this.plcStrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.plcStrTime);
    }
    public String getCrnPosTime$(){
        if (Cools.isEmpty(this.crnPosTime)){
    public String getCrnPosTime$() {
        if (Cools.isEmpty(this.crnPosTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.crnPosTime);
    }
    public String getRefIotime$(){
        if (Cools.isEmpty(this.refIotime)){
    public String getRefIotime$() {
        if (Cools.isEmpty(this.refIotime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.refIotime);
    }
    public String getModiUser$(){
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modiUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$(){
        if (Cools.isEmpty(this.modiTime)){
    public String getModiTime$() {
        if (Cools.isEmpty(this.modiTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
    }
    public String getAppeUser$(){
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appeUser);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appeTime)){
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appeTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
    }
    public String getErrorTime$(){
        if (Cools.isEmpty(this.errorTime)){
    public String getErrorTime$() {
        if (Cools.isEmpty(this.errorTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
    }
    public String getLogErrTime$(){
        if (Cools.isEmpty(this.logErrTime)){
    public String getLogErrTime$() {
        if (Cools.isEmpty(this.logErrTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.logErrTime);
    }
    public String getEndTime$(){
        if (Cools.isEmpty(this.endTime)){
    public String getEndTime$() {
        if (Cools.isEmpty(this.endTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.endTime);
src/main/java/com/zy/asrs/entity/param/Result.java
File was deleted
src/main/java/com/zy/asrs/entity/param/TaskCreateParam.java
@@ -1,6 +1,5 @@
package com.zy.asrs.entity.param;
import io.swagger.models.auth.In;
import lombok.Data;
@Data
@@ -32,9 +31,12 @@
    //堆垛机
    private Integer crn;
    public TaskCreateParam(){};
    public TaskCreateParam() {
    }
    public TaskCreateParam(WMSAndAGVInterfaceParam param){
    ;
    public TaskCreateParam(WMSAndAGVInterfaceParam param) {
        this.taskNo = param.getTaskNo();
        this.ioType = convertParamIoType(param.getTaskType());
        this.barcode = param.getContainerCode();
@@ -43,9 +45,11 @@
        this.targetPoint = param.getTargetLocationCode();
        this.emptyContainer = param.getEmptyContainer();
        this.crn = param.getTaskTunnel();
    };
    }
    public TaskCreateParam(CarryParam param, Integer crn){
    ;
    public TaskCreateParam(CarryParam param, Integer crn) {
        this.taskNo = param.getTaskNo();
        this.ioType = param.getStereoscopicTaskType();
        this.barcode = param.getBoxNo();
@@ -54,11 +58,13 @@
        this.targetPoint = param.getTerminalNo();
        this.emptyContainer = "N";
        this.crn = crn;
    };
    }
    ;
    public static Integer convertParamIoType(String paramIoType){
        switch (paramIoType){
    public static Integer convertParamIoType(String paramIoType) {
        switch (paramIoType) {
            case "RK":
                return 1;
            case "CK":
src/main/java/com/zy/asrs/entity/param/TaskStatusFeedbackParam.java
@@ -51,23 +51,23 @@
        * */
    //任务取消接口
    /*操作类型:
    * 1.正常取消--只能取消未执行的任务,货物处在未执行任务状态
    * 2.强制取消--可取消已执行未完成的任务,货物处在未执行任务状态
    * 3.正常完成--只能完成未执行的任务,货物处于任务执行完成状态
    * 4.强制完成--可完成已执行未完成的任务,货物处于任务执行完成状态
    * */
     * 1.正常取消--只能取消未执行的任务,货物处在未执行任务状态
     * 2.强制取消--可取消已执行未完成的任务,货物处在未执行任务状态
     * 3.正常完成--只能完成未执行的任务,货物处于任务执行完成状态
     * 4.强制完成--可完成已执行未完成的任务,货物处于任务执行完成状态
     * */
    private String taskStatus;          //操作类型
    private String wharfSource;         //源码头
    private List<String> freeWharfs;
    private String requestType;         //请求类型:         1=取货;2=放货
    private String wharfCode;           //码头编号
    public TaskStatusFeedbackParam(){}
    public TaskStatusFeedbackParam() {
    }
    public TaskStatusFeedbackParam(TaskWrk taskWrk){
    public TaskStatusFeedbackParam(TaskWrk taskWrk) {
        this.taskNo = taskWrk.getTaskNo();
        this.feedbackFrom = "WCS";
        this.warehouseId = "1688469798893297665";
@@ -89,8 +89,8 @@
        this.targetLocationCode = taskWrk.getTargetPoint();
    }
    public static String getTaskType(Integer paramIoType){
        switch (paramIoType){
    public static String getTaskType(Integer paramIoType) {
        switch (paramIoType) {
            case 1:
                return "RK";
            case 2:
@@ -101,7 +101,6 @@
                return "未知";
        }
    }
}
src/main/java/com/zy/asrs/entity/param/WMSAndAGVInterfaceParam.java
@@ -37,11 +37,11 @@
    //任务取消接口
    /*操作类型:
    * 1.正常取消--只能取消未执行的任务,货物处在未执行任务状态
    * 2.强制取消--可取消已执行未完成的任务,货物处在未执行任务状态
    * 3.正常完成--只能完成未执行的任务,货物处于任务执行完成状态
    * 4.强制完成--可完成已执行未完成的任务,货物处于任务执行完成状态
    * */
     * 1.正常取消--只能取消未执行的任务,货物处在未执行任务状态
     * 2.强制取消--可取消已执行未完成的任务,货物处在未执行任务状态
     * 3.正常完成--只能完成未执行的任务,货物处于任务执行完成状态
     * 4.强制完成--可完成已执行未完成的任务,货物处于任务执行完成状态
     * */
    private Integer taskStatus;          //操作类型
    //AGV请求入库码头接口
src/main/java/com/zy/asrs/entity/wms/StorageEscalationParam.java
src/main/java/com/zy/asrs/entity/wms/WmsFeedback.java
New file
@@ -0,0 +1,32 @@
package com.zy.asrs.entity.wms;
import lombok.Data;
@Data
public class WmsFeedback {
    /**
     * åˆ†é…çš„货位所属任务ID
     */
    private String taskNo;
    /**
     * 2:派发
     * 4:取消
     * 5:完结
     * 6:库位不为空
     */
    private Integer status;
    /**
     * 1:入库,2:出库
     */
    private Integer ioType;
    /**
     * æ‰˜ç›˜ç 
     */
    private String barcode;
    /**
     * ä¸ŠæŠ¥æ—¶é—´
     */
    private String reportTime;
}
src/main/java/com/zy/asrs/entity/wms/WmsResult.java
New file
@@ -0,0 +1,21 @@
package com.zy.asrs.entity.wms;
import lombok.Data;
@Data
public class WmsResult {
    /**
     * åˆ†é…çš„货位所属任务ID
     */
    private String taskNo;
    /**
     * åº“位号
     */
    private String locNo;
    /**
     * å †åž›æœºç¼–号
     */
    private Integer crnNo;
}
src/main/java/com/zy/asrs/mapper/ApiConfigMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.ApiConfig;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.ApiConfig;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/ApiLogMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.ApiLog;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.ApiLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/BasCrnOptMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.BasCrnOpt;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.BasCrnOpt;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/BasErrLogMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.BasErrLog;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.BasErrLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/BasPlcerrorLogMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.BasPlcerrorLog;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.BasPlcerrorLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/CommandInfoLogMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.CommandInfoLog;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.CommandInfoLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/CommandInfoMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.CommandInfo;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.CommandInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/DataResourceMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.DataResource;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.DataResource;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/DeviceErrorMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.DeviceError;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.DeviceError;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -13,12 +13,12 @@
@Repository
public interface LocMastMapper extends BaseMapper<LocMast> {
//    @Select("select distinct row1 from asr_loc_mast where crn_no = #{crnNo}")
    //    @Select("select distinct row1 from asr_loc_mast where crn_no = #{crnNo}")
    @Select("select row1 from ( select distinct row1 from asr_loc_mast where crn_no = #{crnNo} ) a " +
        "order by case row1 when 1 then 1 when 2 then 0 when 3 then 0 when 4 then 1 " +
        "when 5 then 1 when 6 then 0 when 7 then 0 when 8 then 1 when 9 then 1 when 10 then 0 " +
        "when 11 then 0 when 12 then 1 when 13 then 1 when 14 then 0 when 15 then 0 when 16 then 1 end desc,newid()")
    List<Integer> queryDistinctRow(@Param("crnNo")Integer crnNo);
            "order by case row1 when 1 then 1 when 2 then 0 when 3 then 0 when 4 then 1 " +
            "when 5 then 1 when 6 then 0 when 7 then 0 when 8 then 1 when 9 then 1 when 10 then 0 " +
            "when 11 then 0 when 12 then 1 when 13 then 1 when 14 then 0 when 15 then 0 when 16 then 1 end desc,newid()")
    List<Integer> queryDistinctRow(@Param("crnNo") Integer crnNo);
    LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
@@ -37,6 +37,6 @@
    LocMast selectByLocNo(String locNo);
    List<LocMast> selectLocByLev(@Param("lev")Integer lev);
    List<LocMast> selectLocByLev(@Param("lev") Integer lev);
}
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -24,7 +24,9 @@
    //分页查询库存滞留时间
    public List<ViewStayTimeBean> queryViewStayTimeList(ViewStayTimeBean viewStayTime);
    public int getViewStayTimeCount(ViewStayTimeBean viewStayTime);
    //不分页查询所有信息,用于excel导出
    public List<ViewStayTimeBean> getViewStayTimeAll(ViewStayTimeBean viewStayTime);
@@ -52,11 +54,13 @@
    //分页查询日入库记录
    public List<ViewWorkInBean> queryViewWorkInList(ViewWorkInBean viewWorkIn);
    public int getViewWorkInCount(ViewWorkInBean viewWorkIn);
    //不分页查询所有信息,用于excel导出
    public List<ViewWorkInBean> getViewWorkInAll(ViewWorkInBean viewWorkIn);
    List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime);
    List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr") String matnr, @Param("start") String startTime, @Param("end") String endTime);
    Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime);
@@ -70,7 +74,9 @@
    //分页查询日出库记录
    public List<ViewWorkInBean> queryViewWorkOutList(ViewWorkInBean viewWorkOut);
    public int getViewWorkOutCount(ViewWorkInBean viewWorkOut);
    //不分页查询所有信息,用于excel导出
    public List<ViewWorkInBean> getViewWorkOutAll(ViewWorkInBean viewWorkOut);
src/main/java/com/zy/asrs/mapper/TaskWrkLogMapper.java
@@ -1,7 +1,7 @@
package com.zy.asrs.mapper;
import com.zy.asrs.entity.TaskWrkLog;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.TaskWrkLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
src/main/java/com/zy/asrs/mapper/TaskWrkReportLogMapper.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.TaskWrkReportLog;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface TaskWrkReportLogMapper extends BaseMapper<TaskWrkReportLog> {
}
src/main/java/com/zy/asrs/mapper/TaskWrkReportMapper.java
New file
@@ -0,0 +1,13 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.TaskWrkReport;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface TaskWrkReportMapper extends BaseMapper<TaskWrkReport> {
}
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -2,7 +2,10 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.WrkMast;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -15,7 +18,7 @@
    WrkMast selectByLocNo1(@Param("sourceLocNo") String sourceLocNo);
//    @Select("select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type <> 103 and io_type <> 104 and io_type <> 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,io_time,wrk_no")
    //    @Select("select * from asr_wrk_mast where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type <> 103 and io_type <> 104 and io_type <> 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,io_time,wrk_no")
    List<WrkMast> selectToBeCompleteData();
    List<WrkMast> selectToBeHistoryData();
@@ -23,37 +26,37 @@
    // wcs ---------------------------------------------
    // å…¥åº“第一步,扫码仪获取条码信息时查询
//    @Select("select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC")
    WrkMast selectPakInStep1(@Param("sourceStaNo")Integer sourceStaNo, @Param("barcode")String barcode);
    WrkMast selectPakInStep1(@Param("sourceStaNo") Integer sourceStaNo, @Param("barcode") String barcode);
    WrkMast selectPakInStep11(@Param("sourceStaNo")Integer sourceStaNo);
    WrkMast selectPakInStep11(@Param("sourceStaNo") Integer sourceStaNo);
    // å…¥åº“第二步,当托盘物料在堆垛机入库站时时查询
//    @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no=#{crnNo} and wrk_no=#{workNo} and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC")
    WrkMast selectPakInStep2(@Param("crnNo")Integer crnNo, @Param("workNo")Integer workNo, @Param("staNo")Integer staNo);
    WrkMast selectPakInStep2(@Param("crnNo") Integer crnNo, @Param("workNo") Integer workNo, @Param("staNo") Integer staNo);
    // å…¥åº“第三步,当堆垛机把货放入库位时
//    @Select("select top 1 from dbo.asr_wrk_mast where wrk_no=#{workNo}")
    WrkMast selectPakInStep3(@Param("workNo")Integer workNo);
    WrkMast selectPakInStep3(@Param("workNo") Integer workNo);
    // æ‹£æ–™å†å…¥åº“时,站点有物且需求时查询
//    @Select("select top 1 * from asr_wrk_mast where wrk_no=#{workNo} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)")
    WrkMast selectPickStep(@Param("barcode")String barcode);
    WrkMast selectPickStep(@Param("barcode") String barcode);
    // å‡ºåº“第一步,从库位到堆垛机出库站
//    @Select("select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time,wrk_no asc")
    WrkMast selectPakOutStep1(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
    WrkMast selectPakOutStep1(@Param("crnNo") Integer crnNO, @Param("sourceStaNo") Integer sourceStaNo);
    // å‡ºåº“第二步,从堆垛机出库站到目标出库站,堆垛机出库站有物时执行
//    @Select("select top 1 * from dbo.asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=12 and io_type>100 order by io_pri desc,io_time desc,wrk_no ASC")
    WrkMast selectPakOutStep2(@Param("sourceStaNo")Integer sourceStaNo);
    WrkMast selectPakOutStep2(@Param("sourceStaNo") Integer sourceStaNo);
    // åº“位移转工作档,在进行一次入出库作业后紧跟库位移转
//    @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=11 and (io_type=11 or io_type=110) and crn_no=#{crnNo} order by io_time,wrk_no")
    WrkMast selectLocMove(@Param("crnNo")Integer crnNo);
    WrkMast selectLocMove(@Param("crnNo") Integer crnNo);
    WrkMast selectLocMoving(@Param("crnNo")Integer crnNo);
    WrkMast selectLocMoving(@Param("crnNo") Integer crnNo);
    WrkMast selectWorking(@Param("crnNo")Integer crnNo);
    WrkMast selectWorking(@Param("crnNo") Integer crnNo);
    // work log -------------------------------------------------------
    @Insert("insert into asr_wrk_mast_log select * from asr_wrk_mast where wrk_no=#{workNo}")
@@ -81,14 +84,14 @@
     * @param crnNo
     * @return
     */
    WrkMast selectCrnWorking(@Param("crnNo")Integer crnNo);
    WrkMast selectCrnWorking(@Param("crnNo") Integer crnNo);
    /**
     * è¾“送线是否存在入库任务
     * @param crnNo
     * @return
     */
    WrkMast selectDevWorking(@Param("crnNo")Integer crnNo);
    WrkMast selectDevWorking(@Param("crnNo") Integer crnNo);
    List<WrkMast> selectPick();
@@ -99,8 +102,9 @@
     * @param sourceStaNo
     * @return
     */
    List<WrkMast> selectPakOutStep11(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
    List<WrkMast> selectPakOutStep11(@Param("crnNo") Integer crnNO, @Param("sourceStaNo") Integer sourceStaNo);
    WrkMast selectWorkingPakin(@Param("sourceStaNo")Integer sourceStaNo);
    WrkMast selectWorkingPakout(@Param("sourceStaNo")Integer sourceStaNo);
    WrkMast selectWorkingPakin(@Param("sourceStaNo") Integer sourceStaNo);
    WrkMast selectWorkingPakout(@Param("staNo") Integer staNo);
}
src/main/java/com/zy/asrs/service/ApiLogService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.ApiLog;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.ApiLog;
public interface ApiLogService extends IService<ApiLog> {
src/main/java/com/zy/asrs/service/BasPlcerrorLogService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.BasPlcerrorLog;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasPlcerrorLog;
public interface BasPlcerrorLogService extends IService<BasPlcerrorLog> {
src/main/java/com/zy/asrs/service/BasPlcerrorService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.BasPlcerror;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasPlcerror;
public interface BasPlcerrorService extends IService<BasPlcerror> {
src/main/java/com/zy/asrs/service/CommandInfoLogService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.CommandInfoLog;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.CommandInfoLog;
public interface CommandInfoLogService extends IService<CommandInfoLog> {
src/main/java/com/zy/asrs/service/CommandInfoService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.CommandInfo;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.CommandInfo;
import java.util.List;
src/main/java/com/zy/asrs/service/DataResourceService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.DataResource;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.DataResource;
import java.util.List;
src/main/java/com/zy/asrs/service/DeviceErrorService.java
@@ -1,7 +1,7 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.DeviceError;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.DeviceError;
public interface DeviceErrorService extends IService<DeviceError> {
src/main/java/com/zy/asrs/service/OpenService.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service;
import com.core.common.R;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.entity.param.TaskOverParam;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import java.io.IOException;
import java.util.HashMap;
@@ -11,12 +11,13 @@
public interface OpenService {
    //创建任务
    HashMap<String,Object> taskCreate(TaskCreateParam param);
    HashMap<String, Object> taskCreate(TaskCreateParam param);
    R AgvToWCSToWms(WMSAndAGVInterfaceParam param) throws IOException;
    void getAgvTaskOver(TaskOverParam param);
    R getAgvPickAndPlaceV1(TaskOverParam param);
    R getAgvPickAndPlaceV2(TaskOverParam param);
}
src/main/java/com/zy/asrs/service/StaDescService.java
@@ -7,6 +7,6 @@
    StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo);
    StaDesc queryCrn(Integer typeNo, Integer stnNo,Integer crnNo);
    StaDesc queryCrn(Integer typeNo, Integer stnNo, Integer crnNo);
}
src/main/java/com/zy/asrs/service/TaskWrkReportLogService.java
New file
@@ -0,0 +1,9 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.TaskWrkReportLog;
public interface TaskWrkReportLogService extends IService<TaskWrkReportLog> {
}
src/main/java/com/zy/asrs/service/TaskWrkReportService.java
New file
@@ -0,0 +1,9 @@
package com.zy.asrs.service;
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.TaskWrkReport;
public interface TaskWrkReportService extends IService<TaskWrkReport> {
}
src/main/java/com/zy/asrs/service/ToWmsService.java
New file
@@ -0,0 +1,13 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.wms.StorageEscalationParam;
import com.zy.asrs.entity.wms.WmsResult;
public interface ToWmsService {
    void addReportLog(TaskWrk taskWrk);
    TaskWrk getLocNoFromWms(StorageEscalationParam wmsParam);
}
src/main/java/com/zy/asrs/service/impl/ApiConfigServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.ApiConfigMapper;
import com.zy.asrs.entity.ApiConfig;
import com.zy.asrs.service.ApiConfigService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.ApiConfig;
import com.zy.asrs.mapper.ApiConfigMapper;
import com.zy.asrs.service.ApiConfigService;
import org.springframework.stereotype.Service;
@Service("apiConfigService")
src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
@@ -1,16 +1,17 @@
package com.zy.asrs.service.impl;
import com.core.common.SnowflakeIdWorker;
import com.zy.asrs.mapper.ApiLogMapper;
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.service.ApiLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.SnowflakeIdWorker;
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.mapper.ApiLogMapper;
import com.zy.asrs.service.ApiLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.Date;
@Slf4j
@Service("apiLogService")
public class ApiLogServiceImpl extends ServiceImpl<ApiLogMapper, ApiLog> implements ApiLogService {
@@ -32,7 +33,7 @@
                request,    // è¯·æ±‚内容
                response,
                null,    // å¼‚常内容
                success?1:0 ,    // ç»“æžœ
                success ? 1 : 0,    // ç»“æžœ
                1,    // çŠ¶æ€
                now,    // æ·»åŠ æ—¶é—´
                now,    // ä¿®æ”¹æ—¶é—´
src/main/java/com/zy/asrs/service/impl/BasCrnOptServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.BasCrnOptMapper;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.service.BasCrnOptService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.BasCrnOpt;
import com.zy.asrs.mapper.BasCrnOptMapper;
import com.zy.asrs.service.BasCrnOptService;
import org.springframework.stereotype.Service;
@Service("basCrnOptService")
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -47,21 +47,21 @@
    @Override
    public BasDevp checkSiteStatus(Integer devpNo, boolean put) {
        BasDevp station = selectById(devpNo);
        if (station == null){
            throw new CoolException(devpNo+"站点不存在");
        if (station == null) {
            throw new CoolException(devpNo + "站点不存在");
        }
        if (put) {
            if(station.getAutoing()==null || !station.getAutoing().equals("Y")) {
                throw new CoolException(devpNo+"站点不是自动状态");
            if (station.getAutoing() == null || !station.getAutoing().equals("Y")) {
                throw new CoolException(devpNo + "站点不是自动状态");
            }
            if(station.getLoading()==null || !station.getLoading().equals("Y")) {
                throw new CoolException(devpNo+"站点无物");
            if (station.getLoading() == null || !station.getLoading().equals("Y")) {
                throw new CoolException(devpNo + "站点无物");
            }
            if(station.getWrkNo()!=null && station.getWrkNo()>0) {
                throw new CoolException(devpNo+"站点已有工作号");
            if (station.getWrkNo() != null && station.getWrkNo() > 0) {
                throw new CoolException(devpNo + "站点已有工作号");
            }
            if(wrkMastService.getWorkingMast(devpNo)>0){
                throw new CoolException(devpNo+"站点不能同时生成两笔入库工作档");
            if (wrkMastService.getWorkingMast(devpNo) > 0) {
                throw new CoolException(devpNo + "站点不能同时生成两笔入库工作档");
            }
        }
        return station;
src/main/java/com/zy/asrs/service/impl/BasErrLogServiceImpl.java
@@ -1,10 +1,10 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.mapper.BasErrLogMapper;
import com.zy.asrs.entity.BasErrLog;
import com.zy.asrs.service.BasErrLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.BasErrLog;
import com.zy.asrs.mapper.BasErrLogMapper;
import com.zy.asrs.service.BasErrLogService;
import org.springframework.stereotype.Service;
import java.util.List;
src/main/java/com/zy/asrs/service/impl/BasPlcerrorLogServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.BasPlcerrorLogMapper;
import com.zy.asrs.entity.BasPlcerrorLog;
import com.zy.asrs.service.BasPlcerrorLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.BasPlcerrorLog;
import com.zy.asrs.mapper.BasPlcerrorLogMapper;
import com.zy.asrs.service.BasPlcerrorLogService;
import org.springframework.stereotype.Service;
@Service("basPlcerrorLogService")
src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.BasPlcerrorMapper;
import com.zy.asrs.entity.BasPlcerror;
import com.zy.asrs.service.BasPlcerrorService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.BasPlcerror;
import com.zy.asrs.mapper.BasPlcerrorMapper;
import com.zy.asrs.service.BasPlcerrorService;
import org.springframework.stereotype.Service;
@Service("basPlcerrorService")
src/main/java/com/zy/asrs/service/impl/CommandInfoLogServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.CommandInfoLogMapper;
import com.zy.asrs.entity.CommandInfoLog;
import com.zy.asrs.service.CommandInfoLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.CommandInfoLog;
import com.zy.asrs.mapper.CommandInfoLogMapper;
import com.zy.asrs.service.CommandInfoLogService;
import org.springframework.stereotype.Service;
@Service("commandInfoLogService")
src/main/java/com/zy/asrs/service/impl/CommandInfoServiceImpl.java
@@ -1,12 +1,12 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.CommandInfo;
import com.zy.asrs.entity.CommandInfoLog;
import com.zy.asrs.mapper.CommandInfoMapper;
import com.zy.asrs.entity.CommandInfo;
import com.zy.asrs.service.CommandInfoLogService;
import com.zy.asrs.service.CommandInfoService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
src/main/java/com/zy/asrs/service/impl/DataResourceServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.DataResourceMapper;
import com.zy.asrs.entity.DataResource;
import com.zy.asrs.service.DataResourceService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.DataResource;
import com.zy.asrs.mapper.DataResourceMapper;
import com.zy.asrs.service.DataResourceService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -36,7 +36,7 @@
        for (DataResource dataResource : dataResources) {//将普通数据和有孩子节点数据进行分割
            if (this.hasChild(dataResource.getId())) {
                listChild.add(dataResource);
            }else {
            } else {
                list.add(dataResource);
            }
        }
src/main/java/com/zy/asrs/service/impl/DeviceErrorServiceImpl.java
@@ -1,13 +1,11 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.DeviceErrorMapper;
import com.zy.asrs.entity.DeviceError;
import com.zy.asrs.service.DeviceErrorService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.core.enums.SlaveType;
import com.zy.asrs.entity.DeviceError;
import com.zy.asrs.mapper.DeviceErrorMapper;
import com.zy.asrs.service.DeviceErrorService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
@Service("deviceErrorService")
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -8,8 +8,6 @@
import com.core.common.R;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WmsLocStatus;
import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.LocMastService;
@@ -23,6 +21,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service("locMastService")
public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService {
@@ -73,7 +72,7 @@
    @Override
    public LocMast selectByLocNo(String locNo) {
        return this.selectOne(new EntityWrapper<LocMast>().eq("loc_no",locNo));
        return this.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo));
        //return this.baseMapper.selectByLocNo(locNo);
    }
@@ -87,20 +86,20 @@
    public R toWmsLocStatus(LocMast locMast) {
        String response = null;
        Map<String, Object> map = new HashMap<>();
        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
        map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2");
        WmsLocStatus param = new WmsLocStatus();
        param.setWarehouseId("1688469798893297665");
        param.setLocationCode(Utils.getWmsLocNo(locMast.getLocNo()));
        param.setEmptyContainer(locMast.getEmptyContainer$());
        if (locMast.getLocSts().equals("Z")){
        if (locMast.getLocSts().equals("Z")) {
            param.setStatus("JY");
        }else {
        } else {
            param.setStatus("QY");
        }
        if (Cools.isEmpty(locMast.getBarcode()) || locMast.getLocSts().equals("O")){
        if (Cools.isEmpty(locMast.getBarcode()) || locMast.getLocSts().equals("O")) {
            param.setContainerCode("");
            param.setContainerTypeCode("");
        }else {
        } else {
            param.setContainerCode(locMast.getBarcode());
            param.setContainerTypeCode(locMast.getContainerTypeCode());
        }
@@ -113,19 +112,19 @@
                    .setJson(JSON.toJSONString(param))
                    .build()
                    .doPost();
        }catch (Exception e){
        } catch (Exception e) {
            log.error("堆垛机任务完成,请求wms任务完成接口失败");
        }
        JSONObject jsonObject = JSON.parseObject(response);
        apiLogService.save("Wms变更货位状态"
                ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
                ,null
                ,"127.0.0.1"
                ,JSON.toJSONString(param)
                ,response
                ,true
                , wmsUrl + "wcsManager/wcsInterface/inboundTaskApply"
                , null
                , "127.0.0.1"
                , JSON.toJSONString(param)
                , response
                , true
        );
        return null;
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -26,11 +26,11 @@
    }
    @Override
    public StaDesc queryCrn(Integer typeNo, Integer stnNo,Integer crnNo) {
    public StaDesc queryCrn(Integer typeNo, Integer stnNo, Integer crnNo) {
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", typeNo)
                .eq("stn_no", stnNo)
                .eq("crn_no",crnNo);
                .eq("crn_no", crnNo);
        StaDesc staDesc = this.selectOne(wrapper);
        if (staDesc == null) {
            return null;
src/main/java/com/zy/asrs/service/impl/TaskWrkLogReportServiceImpl.java
New file
@@ -0,0 +1,12 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.TaskWrkReportLog;
import com.zy.asrs.mapper.TaskWrkReportLogMapper;
import com.zy.asrs.service.TaskWrkReportLogService;
import org.springframework.stereotype.Service;
@Service
public class TaskWrkLogReportServiceImpl extends ServiceImpl<TaskWrkReportLogMapper, TaskWrkReportLog> implements TaskWrkReportLogService {
}
src/main/java/com/zy/asrs/service/impl/TaskWrkLogServiceImpl.java
@@ -1,9 +1,9 @@
package com.zy.asrs.service.impl;
import com.zy.asrs.mapper.TaskWrkLogMapper;
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.service.TaskWrkLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.TaskWrkLog;
import com.zy.asrs.mapper.TaskWrkLogMapper;
import com.zy.asrs.service.TaskWrkLogService;
import org.springframework.stereotype.Service;
@Service("taskWrkLogService")
src/main/java/com/zy/asrs/service/impl/TaskWrkReportServiceImpl.java
New file
@@ -0,0 +1,46 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.TaskWrkReport;
import com.zy.asrs.mapper.TaskWrkMapper;
import com.zy.asrs.mapper.TaskWrkReportMapper;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.service.TaskWrkReportService;
import com.zy.asrs.service.TaskWrkService;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.core.DevpThread;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.StaProtocol;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Slf4j
@Service
public class TaskWrkReportServiceImpl extends ServiceImpl<TaskWrkReportMapper, TaskWrkReport> implements TaskWrkReportService {
}
src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
New file
@@ -0,0 +1,158 @@
package com.zy.asrs.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.TaskWrk;
import com.zy.asrs.entity.TaskWrkReport;
import com.zy.asrs.entity.wms.StorageEscalationParam;
import com.zy.asrs.entity.wms.WmsResult;
import com.zy.asrs.service.*;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.Synchro;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Date;
@Slf4j
@Service("toWmsService")
public class ToWmsServiceImpl implements ToWmsService {
    @Autowired
    private TaskWrkService taskWrkService;
    @Autowired
    private TaskWrkReportService taskWrkReportService;
    @Autowired
    private CommonService commonService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private ApiLogService apiLogService;
    @Value("${wms.url}")
    private String wmsUrl;
    /**
     * ç”³è¯·å…¥åº“
     */
    @Value("${wms.inboundTaskApplyPath}")
    private String inboundTaskApplyPath;
    /**
     * ä»»åŠ¡å¼€å§‹æ—¶ï¼ŒWCS回调WMS
     */
    @Value("${wms.taskExecCallback}")
    private String taskExecCallback;
    /**
     * ä»»åŠ¡å®Œæˆç»“æŸæ—¶ï¼ŒWCS回调WMS
     */
    @Value("${wms.taskStatusFeedbackPath}")
    private String taskStatusFeedbackPath;
    @Value("${wms.code}")
    private String code;
    @Value("${wms.successCode}")
    private String successCode;
    @Value("${wms.msg}")
    private String msg;
    @Value("${wms.data}")
    private String data;
    @Override
    public void addReportLog(TaskWrk taskWrk) {
        TaskWrkReport taskWrkReport = new TaskWrkReport();
        Synchro.Copy(taskWrk, taskWrkReport);
        taskWrkReport.setCreateTime(new Date());
        taskWrkReportService.insert(taskWrkReport);
    }
    @Override
    public TaskWrk getLocNoFromWms(StorageEscalationParam wmsParam) {
        String response = "";
        Boolean success = false;
        try {
            response = new HttpHandler.Builder()
                    .setUri(wmsUrl)
                    .setPath(inboundTaskApplyPath)
                    .setJson(JSON.toJSONString(wmsParam))
                    .build()
                    .doPost();
            if (!Cools.isEmpty(response)) {
                JSONObject jsonObject = JSON.parseObject(response);
                if (!Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) {
                    //有些三方wms系统不能及时返回库位号,这时候就需要
                    //ZWmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class);
                    TaskWrk taskWrk = null;
                    int i = 1;
                    while (i < 10) {
                        taskWrk = taskWrkService.selectByBarcode(wmsParam.getBarcode());
                        if (taskWrk != null) {
                            break;
                        }
                        try {
                            i++;
                            Thread.sleep(500L);
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }
                    return taskWrk;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
            log.info("请求wms报错,{}", e.getMessage());
        } finally {
            addApiLog("入库任务请求获取库位", wmsUrl + inboundTaskApplyPath, JSON.toJSONString(wmsParam), response, success);
        }
        return null;
    }
    private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) {
        //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
        String locNo = result.getLocNo();
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(result.getTaskNo());//任务号
        taskWrk.setWrkNo(workNo1);
        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//任务状态:派发
        taskWrk.setCreateTime(now);
        taskWrk.setIoType(1);//任务类型
        taskWrk.setIoPri(13);//优先级
        taskWrk.setBarcode(barcode);//条码
        LocMast locMast = locMastService.selectByLocNo(locNo);
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setTargetPoint(locNo);
        taskWrk.setStartPoint(startPoint + "");
        taskWrk.setCrnNo(result.getCrnNo());
        if (taskWrk.getIoType() == 1) {
            taskWrk.setWrkSts(2);
            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
            }
        }
        return taskWrk;
    }
    private void addApiLog(String nameSpace, String url, String param, String response, Boolean success) {
        apiLogService.save(nameSpace, url, null, "127.0.0.1", param, response, success);
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -17,6 +17,7 @@
import java.util.Date;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service
public class WorkServiceImpl implements WorkService {
@@ -72,9 +73,9 @@
            throw new CoolException("修改工作档失败");
        }
        HashMap<String,Object> headParam = new HashMap<>();
        headParam.put("TaskNo",wrkMast.getTaskNo());
        headParam.put("Result",0);//完成
        HashMap<String, Object> headParam = new HashMap<>();
        headParam.put("TaskNo", wrkMast.getTaskNo());
        headParam.put("Result", 0);//完成
        try {
            String response;
@@ -179,9 +180,9 @@
        if (!wrkMastRes || !locMastRes) {
            throw new CoolException("保存数据失败");
        }
        HashMap<String,Object> headParam = new HashMap<>();
        headParam.put("TaskNo",wrkMast.getTaskNo());
        headParam.put("Result",1);//取消
        HashMap<String, Object> headParam = new HashMap<>();
        headParam.put("TaskNo", wrkMast.getTaskNo());
        headParam.put("Result", 1);//取消
        try {
            String response;
src/main/java/com/zy/asrs/service/impl/WrkDetlLogServiceImpl.java
@@ -11,6 +11,6 @@
    @Override
    public boolean save(Integer workNo) {
        return this.baseMapper.save(workNo)>0;
        return this.baseMapper.save(workNo) > 0;
    }
}
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -26,12 +26,12 @@
    @Override
    @Transactional
    public void createWorkDetail(Integer workNo, List<WaitPakin> waitPakins, String barcode) {
        if (waitPakins.isEmpty()){
        if (waitPakins.isEmpty()) {
            return;
        }
        for (WaitPakin waitPakin : waitPakins) {
            MatCode matCode = matCodeService.selectById(waitPakin.getMatnr());
            if (Cools.isEmpty(matCode)){
            if (Cools.isEmpty(matCode)) {
                throw new CoolException("物料条码数据为空");
            }
            // ä¿æŒå·¥ä½œæ¡£æ˜Žç»†
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -31,7 +31,7 @@
    @Override
    public int getOutToStn182(Integer devpNo) {
        return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12));
        return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts", 11, 12));
    }
    @Override
src/main/java/com/zy/asrs/task/AbstractHandler.java
@@ -17,12 +17,12 @@
//    protected abstract ReturnT<T> start();
    protected void exceptionHandle(String errorMsg){
    protected void exceptionHandle(String errorMsg) {
        log.error(errorMsg);
        exceptionHandle(errorMsg, (Object) null);
    }
    protected void exceptionHandle(String errorMsg, Object... args){
    protected void exceptionHandle(String errorMsg, Object... args) {
        log.error(errorMsg);
        throw new CoolException(MessageFormat.format(errorMsg, args));
    }
src/main/java/com/zy/asrs/task/TaskReportScheduler.java
New file
@@ -0,0 +1,106 @@
package com.zy.asrs.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.TaskWrkReport;
import com.zy.asrs.entity.TaskWrkReportLog;
import com.zy.asrs.entity.wms.WmsFeedback;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.TaskWrkReportLogService;
import com.zy.asrs.service.TaskWrkReportService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.Synchro;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Date;
/**
 * å®šæ—¶å°†ä»»åŠ¡(完成、取消)转成日志
 */
@Slf4j
@Component
public class TaskReportScheduler {
    @Autowired
    private TaskWrkReportService taskWrkReportService;
    @Autowired
    private TaskWrkReportLogService taskWrkReportLogService;
    @Autowired
    private ApiLogService apiLogService;
    @Value("${wms.url}")
    private String wmsUrl;
    @Value("${wms.taskExecCallback}")
    private String TaskExecCallback;
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute() throws IOException {
        Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("createTime", true));
        if (taskWrkReportPage.getRecords() != null) {
            //新增一个过滤机制
            for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) {
                WmsFeedback wmsFeedback = getWmsFeedback(taskWrk);
                String response = "";
                Boolean bool = false;
                try {
                    log.info("wcs手动完成任务上报wms={}", taskWrk);
                    response = new HttpHandler.Builder()
                            // .setHeaders(headParam)
                            .setUri(wmsUrl)
                            .setPath(TaskExecCallback)
                            .setJson(JSON.toJSONString(wmsFeedback))
                            .build()
                            .doPost();
                    JSONObject jsonObject = JSON.parseObject(response);
                    TaskWrkReportLog taskWrkLog = new TaskWrkReportLog();
                    Synchro.Copy(taskWrk, taskWrkLog);
                    taskWrkLog.setId(null);
                    if (!taskWrkReportLogService.insert(taskWrkLog)) {
                        throw new CoolException("转历史档失败" + taskWrkLog);
                    }
                    if (!taskWrkReportService.deleteById(taskWrk)) {
                        throw new CoolException("任务档删除失败" + taskWrkLog);
                    }
                    bool = true;
                } catch (Exception e) {
                    log.error("wcs手动完成任务上报wms失败{},返回值={}", taskWrk, response);
                } finally {
                    apiLogService.save("任务状态上报"
                            , wmsUrl + TaskExecCallback
                            , null
                            , "127.0.0.1"
                            , JSON.toJSONString(wmsFeedback)
                            , response
                            , bool
                    );
                }
            }
        }
    }
    private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) {
        WmsFeedback feedback = new WmsFeedback();
        feedback.setBarcode(taskWrk.getBarcode());
        feedback.setReportTime(DateUtils.convert(new Date()));
        feedback.setIoType(taskWrk.getIoType());
        feedback.setTaskNo(taskWrk.getTaskNo());
        feedback.setStatus(taskWrk.getStatus());
        return feedback;
    }
}
src/main/java/com/zy/asrs/task/core/ReturnT.java
@@ -27,7 +27,7 @@
        this.content = content;
    }
    public boolean isSuccess(){
    public boolean isSuccess() {
        return this.code == 200;
    }
src/main/java/com/zy/asrs/task/core/WcsDispatcher.java
@@ -23,7 +23,7 @@
    private ConfigService configService;
    @PostConstruct
    private void start(){
    private void start() {
        thread = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {
                try {
@@ -43,7 +43,7 @@
    }
    @PreDestroy
    public void shutDown(){
    public void shutDown() {
        if (thread != null)
            thread.interrupt();
        log.info("任务中心调度器已停止......");
src/main/java/com/zy/asrs/utils/CommandUtils.java
File was deleted
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -2,7 +2,6 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -15,16 +14,16 @@
    /*
    * url: eg: 192.168.4.15:1433
    * path: eg: api/InterFace/get_InterFace_TestStorage
    * combParam:参数
    * */
    public ReturnT<String> postMesData(String name,String URL,String mesPath, Object combParam){
     * url: eg: 192.168.4.15:1433
     * path: eg: api/InterFace/get_InterFace_TestStorage
     * combParam:参数
     * */
    public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam) {
//        if (true){
//            System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
//            return SUCCESS;
//        }
        if(combParam != null){
        if (combParam != null) {
            String response = "";
            boolean success = false;
            try {
@@ -37,24 +36,25 @@
                        .setJson(JSON.toJSONString(combParam))
                        .build()
                        .doPost();
                System.out.println("response:"+response);
                System.out.println("response:" + response);
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
                    throw new CoolException("上报"+name);
                    log.error("请求接口失败!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(combParam), response);
                    throw new CoolException("上报" + name);
                }
            } catch (Exception e) {
                log.error("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
                log.error("请求接口失败!!!url:{};request:{};response:{}", URL + "/" + mesPath, JSON.toJSONString(combParam), response);
//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                } catch (Exception e) {
                    log.error("", e); }
                    log.error("", e);
                }
            }
        }
        return SUCCESS;
src/main/java/com/zy/asrs/utils/Utils.java
@@ -3,7 +3,6 @@
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.LocMast;
import com.zy.core.model.CrnSlave;
import com.zy.core.properties.SlaveProperties;
@@ -20,14 +19,14 @@
    public static String getWmsLocNo(String locNo) {
        String loc = null;
        int row = Integer.parseInt(locNo.substring(0, 2));
        int bay = Integer.parseInt(locNo.substring(2, 5))-1;
        int bay = Integer.parseInt(locNo.substring(2, 5)) - 1;
        int lev = Integer.parseInt(locNo.substring(5, 7));
        Integer sssc = getRowZ(row);
        Integer fz = getFZ(row, sssc);
        Integer fz1 = getFZ1(row, sssc);
        //System.out.println(sssc + "-" + bay + "-" + lev + "-" + fz + "-" + fz1);
        loc = String.format("%02d",sssc) + "-" + String.format("%02d",bay) + "-" + String.format("%02d",lev) + "-" + String.format("%02d",fz) + "-" + String.format("%02d",fz1);
        loc = String.format("%02d", sssc) + "-" + String.format("%02d", bay) + "-" + String.format("%02d", lev) + "-" + String.format("%02d", fz) + "-" + String.format("%02d", fz1);
        return loc;
    }
@@ -60,40 +59,38 @@
    }
    //转换wms传输的库位号
    public static String getWcsLocNo(String locNo){
    public static String getWcsLocNo(String locNo) {
        String[] split = locNo.split("-");
        int[] wcsRow = getWcsRow(split[0]);
        int[] ints = null;
        if (split[3].equals("01")){
            ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2);
            if (split[4].equals("01")){
                if (ints.length<2){
        if (split[3].equals("01")) {
            ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length + 2 - 1) / 2);
            if (split[4].equals("01")) {
                if (ints.length < 2) {
                }else {
                } else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
                }
            }else {
                if (ints.length<2){
            } else {
                if (ints.length < 2) {
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                } else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2 - 1, ints.length - 1);
                }
            }
        }else {
            ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length );
            if (split[4].equals("01")){
                if (ints.length<2){
        } else {
            ints = Arrays.copyOfRange(wcsRow, (wcsRow.length + 2 - 1) / 2, wcsRow.length);
            if (split[4].equals("01")) {
                if (ints.length < 2) {
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                } else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2 - 1, ints.length - 1);
                }
            }else {
                if (ints.length<2){
            } else {
                if (ints.length < 2) {
                }else {
                } else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
                }
@@ -102,43 +99,43 @@
        }
        int i = ints[0];
        String wcsLocNo = "";
        Integer bay = Integer.parseInt(split[1])+1;
        Integer bay = Integer.parseInt(split[1]) + 1;
        String bay2 = "";
        if (bay>9){
        if (bay > 9) {
            bay2 = bay.toString();
        }else {
            bay2 = "0"+bay;
        } else {
            bay2 = "0" + bay;
        }
        if (i>9){
            wcsLocNo = i+"0"+bay2+split[2];
        }else {
            wcsLocNo = "0"+i+"0"+bay2+split[2];
        if (i > 9) {
            wcsLocNo = i + "0" + bay2 + split[2];
        } else {
            wcsLocNo = "0" + i + "0" + bay2 + split[2];
        }
        return wcsLocNo;
    }
    public static int[] getWcsRow(String row){
    public static int[] getWcsRow(String row) {
        int[] array = null;
        switch (row){
        switch (row) {
            case "01":
                 array= new int[]{1, 2, 3, 4};
                array = new int[]{1, 2, 3, 4};
                break;
            case "02":
                 array= new int[]{5,6};
                array = new int[]{5, 6};
                break;
            case "03":
                 array= new int[]{7,8,9,10};
                array = new int[]{7, 8, 9, 10};
                break;
            case "04":
                 array= new int[]{11,12,13,14};
                array = new int[]{11, 12, 13, 14};
                break;
            case "05":
                 array= new int[]{15,16,17,18};
                array = new int[]{15, 16, 17, 18};
                break;
            case "06":
                 array= new int[]{19,20,21};
                array = new int[]{19, 20, 21};
                break;
            default:
@@ -146,7 +143,7 @@
        return array;
    }
    public static float scale(Float f){
    public static float scale(Float f) {
        if (f == null || f == 0f || Float.isNaN(f)) {
            return 0f;
        }
@@ -154,19 +151,19 @@
    }
    //站点号转换
    public static String getEquipmentCode(String targetPoint){
        return "J-1"+targetPoint;
    public static String getEquipmentCode(String targetPoint) {
        return "J-1" + targetPoint;
    }
    public static String zerofill(String msg, Integer count){
        if (msg.length() == count){
    public static String zerofill(String msg, Integer count) {
        if (msg.length() == count) {
            return msg;
        } else if (msg.length() > count){
        } else if (msg.length() > count) {
            return msg.substring(0, 16);
        } else {
            StringBuilder msgBuilder = new StringBuilder(msg);
            for (int i = 0; i<count-msg.length(); i++){
                msgBuilder.insert(0,"0");
            for (int i = 0; i < count - msg.length(); i++) {
                msgBuilder.insert(0, "0");
            }
            return msgBuilder.toString();
        }
@@ -175,7 +172,7 @@
    /**
     * åˆ¤æ–­æ˜¯å¦ä¸ºæ·±åº“位
     */
    public static boolean isDeepLoc(SlaveProperties slaveProperties, String locNo){
    public static boolean isDeepLoc(SlaveProperties slaveProperties, String locNo) {
        if (slaveProperties.isDoubleDeep()) {
            int row = getRow(locNo);
            return slaveProperties.getDoubleLocs().contains(row);
@@ -187,7 +184,7 @@
    /**
     * åˆ¤æ–­æ˜¯å¦ä¸ºæ·±åº“位
     */
    public static boolean isDeepLoc(SlaveProperties slaveProperties, Integer row){
    public static boolean isDeepLoc(SlaveProperties slaveProperties, Integer row) {
        if (slaveProperties.isDoubleDeep()) {
            return slaveProperties.getDoubleLocs().contains(row);
        } else {
@@ -198,7 +195,7 @@
    /**
     * åˆ¤æ–­æ˜¯å¦ä¸ºæµ…库位
     */
    public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo){
    public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo) {
        if (slaveProperties.isDoubleDeep()) {
            int row = getRow(locNo);
            return !slaveProperties.getDoubleLocs().contains(row);
@@ -210,7 +207,7 @@
    /**
     * åˆ¤æ–­æ˜¯å¦ä¸ºæµ…库位
     */
    public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row){
    public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row) {
        if (slaveProperties.isDoubleDeep()) {
            return !slaveProperties.getDoubleLocs().contains(row);
        } else {
@@ -224,16 +221,21 @@
    public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
        int row = getRow(deepLoc);
//        int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
        int shallowRow  = getShallowRow(row);
        int shallowRow = getShallowRow(row);
        return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
    }
    public static int getShallowRow(Integer row){
    public static int getShallowRow(Integer row) {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(1,2);map.put(4,3);
        map.put(7,8);map.put(10,9);
        map.put(11,12);map.put(14,13);
        map.put(15,16);map.put(18,17);
        map.put(19,20);
        map.put(1, 2);
        map.put(4, 3);
        map.put(7, 8);
        map.put(10, 9);
        map.put(11, 12);
        map.put(14, 13);
        map.put(15, 16);
        map.put(18, 17);
        map.put(19, 20);
        return map.get(row);
    }
@@ -359,7 +361,7 @@
            List<CrnSlave.CrnStn> crnInStn = null;
            if (pakIn) {
                crnInStn = crn.getCrnInStn();
            }else {
            } else {
                crnInStn = crn.getCrnOutStn();
            }
@@ -387,7 +389,7 @@
    }
    public static Integer StaNoCrnNo(Integer staNo) {
        switch (staNo){
        switch (staNo) {
            case 100:
            case 101:
                return 1;
@@ -406,7 +408,7 @@
    }
    public static boolean locNoRowBoolean(Integer row) {
        switch (row){
        switch (row) {
            case 1:
            case 2:
            case 4:
@@ -426,17 +428,17 @@
        }
    }
    public static String Fusion(int x, int y, int z){
        String locNo="0"+x;
        if(z>=10){
            locNo=locNo+"0"+z;
        }else{
            locNo=locNo+"00"+z;
    public static String Fusion(int x, int y, int z) {
        String locNo = "0" + x;
        if (z >= 10) {
            locNo = locNo + "0" + z;
        } else {
            locNo = locNo + "00" + z;
        }
        if(y>=10){
            locNo=locNo+y;
        }else {
            locNo=locNo+"0"+y;
        if (y >= 10) {
            locNo = locNo + y;
        } else {
            locNo = locNo + "0" + y;
        }
        return locNo;
src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -1,6 +1,5 @@
package com.zy.asrs.utils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.MatCode;
@@ -65,7 +64,7 @@
    /**
     *  åº“位移转时类型检测
     **/
    public static void locMoveCheckLocType(LocMast sourceLoc, LocMast loc){
    public static void locMoveCheckLocType(LocMast sourceLoc, LocMast loc) {
        // å¦‚果源库位是高库位,目标库位是低库位
//        if (sourceLoc.getLocType1() == 2 && loc.getLocType1() == 1) {
//            throw new CoolException("高库位不能移转至低库位");
@@ -75,7 +74,7 @@
    /**
     *  åº“位移转时类型检测
     **/
    public static boolean locMoveCheckLocType(LocMast loc, LocTypeDto dto){
    public static boolean locMoveCheckLocType(LocMast loc, LocTypeDto dto) {
        return true;
    }
src/main/java/com/zy/common/CodeBuilder.java
@@ -17,11 +17,11 @@
//        generator.table="sys_host";
        // sqlserver
        generator.sqlOsType = SqlOsType.SQL_SERVER;
        generator.url="127.0.0.1:1433;databasename=ghtzasrs";
        generator.username="sa";
        generator.password="sa@123";
        generator.table="man_api_log";
        generator.packagePath="com.zy.asrs";
        generator.url = "127.0.0.1:1433;databasename=ghtzasrs";
        generator.username = "sa";
        generator.password = "sa@123";
        generator.table = "man_api_log";
        generator.packagePath = "com.zy.asrs";
        generator.js = false;
        generator.html = false;
        generator.sql = false;
src/main/java/com/zy/common/Main.java
@@ -56,19 +56,18 @@
    public static void main(String[] args) {
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S300,"192.168.6.1");
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S300, "192.168.6.1");
        siemens_net.setSlot((byte) 2);
        siemens_net.setRack((byte) 0);
        OperateResult connect = siemens_net.ConnectServer();
        if(connect.IsSuccess){
        if (connect.IsSuccess) {
            System.out.println("connect success!");
        }
        else {
            System.out.println("failed:"+connect.Message);
        } else {
            System.out.println("failed:" + connect.Message);
        }
        siemens_net.ConnectClose();
        short[] array = new short[] {9999,20,31,40,50};
        short[] array = new short[]{9999, 20, 31, 40, 50};
        OperateResult db100 = siemens_net.Write("DB8.18", array);
        if (db100.IsSuccess) {
            System.out.println("写入成功");
@@ -327,15 +326,13 @@
    /**
     * ä¸‰è±   Q   ASCII通讯格式
     */
    private  static void MelsecAsciiTest(){
    private static void MelsecAsciiTest() {
        MelsecMcAsciiNet melsec = new MelsecMcAsciiNet("192.168.1.192",6001);
        OperateResultExOne<short[]> read = melsec.ReadInt16("D100",(short) 2);
        if(read.IsSuccess)
        {
        MelsecMcAsciiNet melsec = new MelsecMcAsciiNet("192.168.1.192", 6001);
        OperateResultExOne<short[]> read = melsec.ReadInt16("D100", (short) 2);
        if (read.IsSuccess) {
            System.out.println(Arrays.toString(read.Content));
        }
        else {
        } else {
            System.out.println(read.ToMessageShowString());
        }
    }
@@ -344,14 +341,13 @@
    /**
     * è¥¿é—¨å­
     */
    private static void SiemesTest(){
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S1200,"192.168.1.195");
    private static void SiemesTest() {
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S1200, "192.168.1.195");
        OperateResult connect = siemens_net.ConnectServer();
        if(connect.IsSuccess){
        if (connect.IsSuccess) {
            System.out.println("connect success!");
        }
        else {
            System.out.println("failed:"+connect.Message);
        } else {
            System.out.println("failed:" + connect.Message);
        }
        siemens_net.ConnectClose();
@@ -364,20 +360,19 @@
        long m100_long = siemens_net.ReadInt64("M100").Content;
        float m100_float = siemens_net.ReadFloat("M100").Content;
        double m100_double = siemens_net.ReadDouble("M100").Content;
        String m100_string = siemens_net.ReadString("M100",(short) 10).Content;
        String m100_string = siemens_net.ReadString("M100", (short) 10).Content;
        siemens_net.Write("M100",(byte) 123);
        siemens_net.Write("M100",(short) 123);
        siemens_net.Write("M100",(int) 123);
        siemens_net.Write("M100",(long) 123);
        siemens_net.Write("M100", (byte) 123);
        siemens_net.Write("M100", (short) 123);
        siemens_net.Write("M100", (int) 123);
        siemens_net.Write("M100", (long) 123);
        siemens_net.Write("M100", 123.456f);
        siemens_net.Write("M100", 123.456d);
        siemens_net.Write("M100","1234567890");
        siemens_net.Write("M100", "1234567890");
        OperateResultExOne<byte[]> read = siemens_net.Read( "M100", (short) 10 );
        OperateResultExOne<byte[]> read = siemens_net.Read("M100", (short) 10);
        {
            if(read.IsSuccess)
            {
            if (read.IsSuccess) {
                byte m100 = read.Content[0];
                byte m101 = read.Content[1];
                byte m102 = read.Content[2];
@@ -388,9 +383,7 @@
                byte m107 = read.Content[7];
                byte m108 = read.Content[8];
                byte m109 = read.Content[9];
            }
            else
            {
            } else {
                // å‘生了异常
            }
        }
@@ -399,7 +392,7 @@
    private static void PushNetTest() {
        NetPushClient client = new NetPushClient("127.0.0.1", 23467, "A");
        OperateResult connect = client.CreatePush(new ActionOperateExTwo<NetPushClient,String>(){
        OperateResult connect = client.CreatePush(new ActionOperateExTwo<NetPushClient, String>() {
            @Override
            public void Action(NetPushClient content1, String content2) {
                System.out.println(content2);
@@ -408,35 +401,34 @@
        if (connect.IsSuccess) {
            System.out.println("连接成功!");
        } else {
            System.out.println("连接失败!"+connect.Message);
            System.out.println("连接失败!" + connect.Message);
        }
    }
    private static void ModbusTcpTets(){
        ModbusTcpNet modbusTcpNet = new ModbusTcpNet("127.0.0.1",502,(byte) 0x01);
    private static void ModbusTcpTets() {
        ModbusTcpNet modbusTcpNet = new ModbusTcpNet("127.0.0.1", 502, (byte) 0x01);
        // å½“你需要指定格式的数据解析时,就需要设置下面的这个信息
        modbusTcpNet.setDataFormat(DataFormat.BADC);
        OperateResultExOne<Double> read = modbusTcpNet.ReadDouble("s=2;x=4;200");
        if(read.IsSuccess){
        if (read.IsSuccess) {
            System.out.println(read.Content);
        }
        else {
        } else {
            System.out.println(read.Message);
        }
        modbusTcpNet.Write("100",new int[]{12345,-12345});
        modbusTcpNet.Write("100", new int[]{12345, -12345});
    }
    private static void NetComplexClientTest(){
    private static void NetComplexClientTest() {
        System.out.println("Hello World!等待10s关闭");
        NetComplexClient client = new NetComplexClient();
        client.setIpAddress("127.0.0.1");
        client.setPort(12346);
        client.setClientAlias("测试1");
        client.AcceptString= new ActionOperateExThree<NetComplexClient,NetHandle,String>(){
        client.AcceptString = new ActionOperateExThree<NetComplexClient, NetHandle, String>() {
            @Override
            public void Action(NetComplexClient content1, NetHandle content2, String content3) {
                System.out.println("Handle:"+content2.get_CodeValue()+"  Value:"+content3);
                System.out.println("Handle:" + content2.get_CodeValue() + "  Value:" + content3);
            }
        };
src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -34,6 +34,7 @@
@Component
public class AdminInterceptor extends HandlerInterceptorAdapter {
    private final RateLimiter rateLimiter = RateLimiter.create(10);// é»˜è®¤æ¯ç§’最多处理 10 ä¸ªè¯·æ±‚
    @Value("${super.pwd}")
    private String superPwd;
    @Autowired
@@ -49,8 +50,6 @@
    @Autowired
    private ApiConfigService apiConfigService;
    private final RateLimiter rateLimiter = RateLimiter.create(10);// é»˜è®¤æ¯ç§’最多处理 10 ä¸ªè¯·æ±‚
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        cors(response);
@@ -59,7 +58,7 @@
        }
        HandlerMethod handlerMethod = (HandlerMethod) handler;
        Method method = handlerMethod.getMethod();
        if (method.isAnnotationPresent(RateLimit.class)){
        if (method.isAnnotationPresent(RateLimit.class)) {
            RateLimit annotation = method.getAnnotation(RateLimit.class);
            rateLimiter.setRate(annotation.value());
            if (!rateLimiter.tryAcquire(annotation.value(), TimeUnit.SECONDS)) {
@@ -70,12 +69,12 @@
        // super账号
        String token = request.getHeader("token");
        if (token!=null) {
        if (token != null) {
            String deToken = Cools.deTokn(token, superPwd);
            if (deToken!=null){
            if (deToken != null) {
                long timestamp = Long.parseLong(deToken.substring(0, 13));
                // 1天后过期
                if (System.currentTimeMillis() - timestamp > 86400000){
                if (System.currentTimeMillis() - timestamp > 86400000) {
                    Http.response(response, BaseRes.DENIED);
                    return false;
                }
@@ -87,9 +86,9 @@
        }
        // è·¨åŸŸè®¾ç½®
        // response.setHeader("Access-Control-Allow-Origin", "*");
        if (method.isAnnotationPresent(ManagerAuth.class)){
        if (method.isAnnotationPresent(ManagerAuth.class)) {
            ManagerAuth annotation = method.getAnnotation(ManagerAuth.class);
            if (annotation.value().equals(ManagerAuth.Auth.CHECK)){
            if (annotation.value().equals(ManagerAuth.Auth.CHECK)) {
                return check(request, response, annotation.memo());
            }
        }
@@ -98,7 +97,7 @@
        String servletPath = request.getServletPath();
        ApiConfig apiConfig = apiConfigService.selectByUrl(servletPath);
        if (apiConfig != null) {
            if(apiConfig.getStatus() == 1){
            if (apiConfig.getStatus() == 1) {
                //api被禁用
                Http.response(response, BaseRes.LIMIT);
                return false;
@@ -122,7 +121,7 @@
        try {
            String token = request.getHeader("token");
            UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token));
            if (null == userLogin){
            if (null == userLogin) {
                Http.response(response, BaseRes.DENIED);
                return false;
            }
@@ -130,7 +129,7 @@
            String deToken = Cools.deTokn(token, user.getPassword());
            long timestamp = Long.parseLong(deToken.substring(0, 13));
            // 1天后过期
            if (System.currentTimeMillis() - timestamp > 86400000){
            if (System.currentTimeMillis() - timestamp > 86400000) {
                Http.response(response, BaseRes.DENIED);
                return false;
            }
@@ -149,7 +148,7 @@
            request.setAttribute("userId", user.getId());
//            request.setAttribute("operateLog", operateLog);
            return true;
        } catch (Exception e){
        } catch (Exception e) {
            Http.response(response, BaseRes.DENIED);
            return false;
        }
@@ -175,7 +174,7 @@
    /**
     * è·¨åŸŸ
     */
    private void cors(HttpServletResponse response){
    private void cors(HttpServletResponse response) {
        // è·¨åŸŸè®¾ç½®
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
src/main/java/com/zy/common/config/WebConfig.java
@@ -18,7 +18,7 @@
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(adminInterceptor)
                .addPathPatterns("/**")
                ;
        ;
    }
}
src/main/java/com/zy/common/entity/Parameter.java
@@ -19,13 +19,18 @@
public class Parameter {
    private volatile static Parameter instance = null;
    // éªŒè¯ç å¼€å…³
    private String codeSwitch;
    private String ledDefaultMsg;
    // åº“位初始化口令
    private String locMastInitPwd;
    private Parameter(){
    private Parameter() {
    }
    public static Parameter get(){
        if (instance == null){
            synchronized (Parameter.class){
    public static Parameter get() {
        if (instance == null) {
            synchronized (Parameter.class) {
                instance = reset();
                return instance;
            }
@@ -33,10 +38,10 @@
        return instance;
    }
    /**
     * é‡ç½®
     */
    public static Parameter reset() {
    /**
     * é‡ç½®
     */
    public static Parameter reset() {
        ConfigService configService = SpringUtils.getBean(ConfigService.class);
        List<Config> configs = configService.selectList(new EntityWrapper<Config>().eq("status", "1"));
        Map<String, Object> data = new HashMap<>();
@@ -50,14 +55,6 @@
        instance = Cools.conver(data, Parameter.class);
        return instance;
    }
    // éªŒè¯ç å¼€å…³
    private String codeSwitch;
    private String ledDefaultMsg;
    // åº“位初始化口令
    private String locMastInitPwd;
}
src/main/java/com/zy/common/model/PageParam.java
@@ -8,10 +8,10 @@
 */
public class PageParam {
    @ApiModelProperty(value="分页索引",required=true)
    @ApiModelProperty(value = "分页索引", required = true)
    private int page = 1;
    @ApiModelProperty(value="单页数量",required=true)
    @ApiModelProperty(value = "单页数量", required = true)
    private int size = 10;
    public Integer getPage() {
src/main/java/com/zy/common/model/Shelves.java
@@ -41,18 +41,29 @@
        init();
    }
    public static void main(String[] args) throws InterruptedException {
        Shelves shelves = new Shelves(8, 2);
        System.out.println(shelves.nodes.toString());
        int start = 1;
        while (true) {
            System.out.println(start);
            start = shelves.start(start);
            Thread.sleep(500L);
        }
    }
    /**
     * åˆå§‹åŒ–方法【私有】
     */
    private void init(){
        if (group == 0 || size%group != 0) {
    private void init() {
        if (group == 0 || size % group != 0) {
            throw new RuntimeException("shelves init fail!");
        }
        nodes = new ArrayList<>();
        for (int g = 1; g <= this.group; g++){
            int unit = size/group;
        for (int g = 1; g <= this.group; g++) {
            int unit = size / group;
            List<Integer> node = new ArrayList<>();
            for (int i = (g-1)*unit+1+offset ; i <= g*unit+offset; i++){
            for (int i = (g - 1) * unit + 1 + offset; i <= g * unit + offset; i++) {
                node.add(i);
            }
            nodes.add(node);
@@ -72,9 +83,9 @@
     * @param curSeq å½“前货架号
     * @return è§„则命中货架号
     */
    public int start(int curSeq){
    public int start(int curSeq) {
        Iterator<List<Integer>> iterator = nodes.iterator();
        while (iterator.hasNext()){
        while (iterator.hasNext()) {
            List<Integer> node = iterator.next();
            if (node.contains(curSeq)) {
                int idx = node.indexOf(curSeq);
@@ -101,23 +112,12 @@
    }
    public Integer get(Integer curRow) {
        for (List<Integer> node : nodes){
        for (List<Integer> node : nodes) {
            if (node.contains(curRow)) {
                return nodes.indexOf(node) + 1;
            }
        }
        throw new CoolException("货排检索系统报错, node:" + JSON.toJSONString(nodes) + ", curRow:" + curRow);
    }
    public static void main(String[] args) throws InterruptedException {
        Shelves shelves = new Shelves(8,2);
        System.out.println(shelves.nodes.toString());
        int start = 1;
        while (true) {
            System.out.println(start);
            start = shelves.start(start);
            Thread.sleep(500L);
        }
    }
}
src/main/java/com/zy/common/model/annotations/bit.java
@@ -9,8 +9,8 @@
 * æ ‡è¯†æ³¨è§£ç±»
 * @author vincent
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface bit {
    int value();
    int value();
}
src/main/java/com/zy/common/model/annotations/expr.java
@@ -9,8 +9,8 @@
 * æ ‡è¯†æ³¨è§£ç±»
 * @author vincent
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface expr {
    String value();
    String value();
}
src/main/java/com/zy/common/model/annotations/flag.java
@@ -9,8 +9,8 @@
 * æ ‡è¯†æ³¨è§£ç±»
 * @author vincent
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface flag {
    String value();
    String value();
}
src/main/java/com/zy/common/model/annotations/little.java
@@ -9,6 +9,7 @@
 * å°ç«¯æ¨¡å¼æ³¨è§£ç±»
 * @author vincent
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})
public @interface little {}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface little {
}
src/main/java/com/zy/common/model/annotations/size.java
@@ -9,8 +9,8 @@
 * æ ‡è¯†æ³¨è§£ç±»
 * @author vincent
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
public @interface size {
    int value();
    int value();
}
src/main/java/com/zy/common/service/CommonService.java
@@ -48,6 +48,40 @@
    @Autowired
    private LocDetlService locDetlService;
    public static void main(String[] args) {
        System.out.println(Arith.remainder(1, 4));
        System.out.println("0200201".substring(0, 2));
        String locNo = "0800201";
        int row = Integer.parseInt(locNo.substring(0, 2));
        double remainder = Arith.remainder(row, 4);
        int targetRow;
        if (remainder == 1) {
            // å¾—到当前库位的外围库位
            targetRow = row + 1;
        } else if (remainder == 0) {
            // å¾—到当前库位的内围库位
            targetRow = row - 1;
        } else {
            return;
        }
        String zerofill = zerofill(String.valueOf(targetRow), 2) + locNo.substring(2);
        System.out.println(zerofill);
    }
    public static String zerofill(String msg, Integer count) {
        if (msg.length() == count) {
            return msg;
        } else if (msg.length() > count) {
            return msg.substring(0, 16);
        } else {
            StringBuilder msgBuilder = new StringBuilder(msg);
            for (int i = 0; i < count - msg.length(); ++i) {
                msgBuilder.insert(0, "0");
            }
            return msgBuilder.toString();
        }
    }
    /**
     * ç”Ÿæˆå·¥ä½œå· wrkMk 0:入库 1 - 3000 ; 1:拣料/并板/盘点 3001 - 6000 ; 2: å‡ºåº“ 6001 -9000 ; 3:其他 9001 -9999
     * @return workNo(工作号)
@@ -61,17 +95,17 @@
        int workNo = wrkLastno.getWrkNo();
        int sNo = wrkLastno.getSNo();
        int eNo = wrkLastno.getENo();
        workNo = workNo>=eNo ? sNo : workNo+1;
        workNo = workNo >= eNo ? sNo : workNo + 1;
        while (true) {
            TaskWrk taskWrk = taskWrkService.selectByWrkNo(workNo);
            if (null != taskWrk) {
                workNo = workNo>=eNo ? sNo : workNo+1;
                workNo = workNo >= eNo ? sNo : workNo + 1;
            } else {
                break;
            }
        }
        // ä¿®æ”¹åºå·è®°å½•
        if (workNo > 0){
        if (workNo > 0) {
            wrkLastno.setWrkNo(workNo);
            wrkLastnoService.updateById(wrkLastno);
        }
@@ -79,13 +113,12 @@
        if (workNo == 0) {
            throw new CoolException("生成工作号失败,请联系管理员");
        } else {
            if (taskWrkService.selectByWrkNo(workNo)!=null) {
            if (taskWrkService.selectByWrkNo(workNo) != null) {
                throw new CoolException("生成工作号" + workNo + "在工作档中已存在");
            }
        }
        return workNo;
    }
    /**
     * æ£€ç´¢åº“位号
@@ -166,7 +199,7 @@
                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
                        continue;
                    }
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties,  loc.getLocNo());
                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
                    // æ£€æµ‹ç›®æ ‡åº“位是否为空库位
                    LocMast shallowLoc = locMastService.selectById(shallowLocNo);
                    if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
@@ -186,7 +219,7 @@
            Shelves shelves = new Shelves(rowCount, crn_qty);
            // 1-4排
            if (whsType == 1) {
                for (int i = 0; i < shelves.group; i ++) {
                for (int i = 0; i < shelves.group; i++) {
                    curRow = shelves.start(curRow);
                    if (curRow < 0) {
                        throw new CoolException("检索库位失败,请联系管理员");
@@ -197,10 +230,10 @@
                        break;
                    }
                }
            // 5-8排
                // 5-8排
            } else if (whsType == 2) {
                curRow = curRow - 4;
                for (int i = 0; i < shelves.group; i ++) {
                for (int i = 0; i < shelves.group; i++) {
                    curRow = shelves.start(curRow);
                    if (curRow < 0) {
                        throw new CoolException("检索库位失败,请联系管理员");
@@ -214,9 +247,9 @@
                    }
                }
            // 126空板入 1-8排
                // 126空板入 1-8排
            } else {
                for (int i = 0; i < shelves.group; i ++) {
                for (int i = 0; i < shelves.group; i++) {
                    curRow = shelves.start(curRow);
                    if (curRow < 0) {
                        throw new CoolException("检索库位失败,请联系管理员");
@@ -245,7 +278,7 @@
        }
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        if (!staNo.getAutoing().equals("Y")) {
            throw new CoolException("目标站"+staDesc.getCrnStn()+"不可用");
            throw new CoolException("目标站" + staDesc.getCrnStn() + "不可用");
        }
        // æ›´æ–°åº“位排号
        rowLastno.setCurrentRow(curRow);
@@ -313,40 +346,6 @@
        startupDto.setStaNo(staNo.getDevNo());
        startupDto.setLocNo(locNo);
        return startupDto;
    }
    public static void main(String[] args) {
        System.out.println(Arith.remainder(1, 4));
        System.out.println("0200201".substring(0, 2));
        String locNo = "0800201";
        int row = Integer.parseInt(locNo.substring(0, 2));
        double remainder = Arith.remainder(row, 4);
        int targetRow;
        if (remainder == 1) {
            // å¾—到当前库位的外围库位
            targetRow =  row + 1;
        } else if (remainder == 0) {
            // å¾—到当前库位的内围库位
            targetRow =  row - 1;
        } else {
            return;
        }
        String zerofill = zerofill(String.valueOf(targetRow), 2)+locNo.substring(2);
        System.out.println(zerofill);
    }
    public static String zerofill(String msg, Integer count) {
        if (msg.length() == count) {
            return msg;
        } else if (msg.length() > count) {
            return msg.substring(0, 16);
        } else {
            StringBuilder msgBuilder = new StringBuilder(msg);
            for(int i = 0; i < count - msg.length(); ++i) {
                msgBuilder.insert(0, "0");
            }
            return msgBuilder.toString();
        }
    }
}
src/main/java/com/zy/common/utils/CollectionUtils.java
@@ -8,10 +8,10 @@
public class CollectionUtils {
    public static boolean equals(Set<?> set1, Set<?> set2) {
        if(set1 == null || set2 ==null){
        if (set1 == null || set2 == null) {
            return false;
        }
        if(set1.size()!=set2.size()){
        if (set1.size() != set2.size()) {
            return false;
        }
        return set1.containsAll(set2);
src/main/java/com/zy/common/utils/CommonUtils.java
@@ -7,23 +7,23 @@
 */
public class CommonUtils {
    public static Integer parseInt(Object value){
        if(null == value){
    public static Integer parseInt(Object value) {
        if (null == value) {
            return null;
        }
        String name = value.getClass().getSimpleName().toLowerCase();
        if(name.equals("float")){
            return ((Float)value).intValue();
        } else if(name.equals("double")){
            return ((Double)value).intValue();
        } else if(name.equals("bigdecimal")) {
            return ((BigDecimal)value).intValue();
        } else if(name.equals("long")) {
            return ((Long)value).intValue();
        } else if(name.contains("int")) {
            return (Integer)value;
        if (name.equals("float")) {
            return ((Float) value).intValue();
        } else if (name.equals("double")) {
            return ((Double) value).intValue();
        } else if (name.equals("bigdecimal")) {
            return ((BigDecimal) value).intValue();
        } else if (name.equals("long")) {
            return ((Long) value).intValue();
        } else if (name.contains("int")) {
            return (Integer) value;
        } else {
            return Double.valueOf(""+value).intValue();
            return Double.valueOf("" + value).intValue();
        }
    }
src/main/java/com/zy/common/utils/Http.java
@@ -13,7 +13,7 @@
 */
public class Http {
    public static void response(HttpServletResponse response, String baseRes){
    public static void response(HttpServletResponse response, String baseRes) {
        response.setCharacterEncoding("utf-8");
        response.setContentType("application/json");
        try (PrintWriter out = response.getWriter()) {
src/main/java/com/zy/common/utils/HttpHandler.java
@@ -27,7 +27,7 @@
    private Integer timeout;
    private TimeUnit timeUnit;
    public HttpHandler(Builder builder){
    public HttpHandler(Builder builder) {
        this.uri = builder.uri;
        this.path = builder.path;
        this.json = builder.json;
@@ -45,8 +45,8 @@
    public String doGet() throws IOException {
        String url = paramsToUrl(uri, path, params, https);
        Request.Builder headerBuilder = new Request.Builder();
        if (headers != null && headers.size()>0){
            for (Map.Entry<String, Object> entry : headers.entrySet()){
        if (headers != null && headers.size() > 0) {
            for (Map.Entry<String, Object> entry : headers.entrySet()) {
                headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
            }
        }
@@ -62,24 +62,24 @@
    public String doPost() throws IOException {
        Request request;
        Request.Builder headerBuilder = new Request.Builder();
        if (headers != null && headers.size()>0){
            for (Map.Entry<String, Object> entry : headers.entrySet()){
        if (headers != null && headers.size() > 0) {
            for (Map.Entry<String, Object> entry : headers.entrySet()) {
                headerBuilder.addHeader(entry.getKey(), String.valueOf(entry.getValue()));
            }
        }
        if (json == null || "".equals(json)){
        if (json == null || "".equals(json)) {
            FormBody.Builder builder = new FormBody.Builder();
            for (Map.Entry<String, Object> entry : params.entrySet()){
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                builder.add(entry.getKey(), String.valueOf(entry.getValue()));
            }
            FormBody body = builder.build();
            request = headerBuilder
                    .url((https?"https://":"http://")+uri+path)
                    .url((https ? "https://" : "http://") + uri + path)
                    .post(body)
                    .build();
        } else {
            RequestBody body = RequestBody.create(MEDIA_TYPE, json);
            Request.Builder builder = headerBuilder.url((https?"https://":"http://")+uri+path);
            Request.Builder builder = headerBuilder.url((https ? "https://" : "http://") + uri + path);
            builder.header("Content-Type", "application/json");
            request = builder.post(body).build();
@@ -98,7 +98,7 @@
        StringBuilder res = new StringBuilder();
        res.append(isHttps ? "https://" : "http://");
        res.append(uri);
        if (path.length() > 0 && !(path.charAt(0) == '/')){
        if (path.length() > 0 && !(path.charAt(0) == '/')) {
            res.append("/");
        }
        res.append(path);
@@ -114,8 +114,8 @@
                }
        );
        String url = res.toString();
        if ("&".equals(url.substring(url.length()-1, url.length()))){
            url = url.substring(0, url.length()-1);
        if ("&".equals(url.substring(url.length() - 1, url.length()))) {
            url = url.substring(0, url.length() - 1);
        }
        return url;
    }
@@ -124,7 +124,7 @@
     * èŽ·å– okHttpClient
     * @return the HttpHandler instance
     */
    private OkHttpClient getClient(Integer timeout, TimeUnit timeUnit){
    private OkHttpClient getClient(Integer timeout, TimeUnit timeUnit) {
        return new OkHttpClient
                .Builder()
                .connectTimeout(timeout, timeUnit)
@@ -157,14 +157,14 @@
         * å»ºé€ å™¨
         * @return the HttpHandler instance
         */
        public HttpHandler build(){
            if (null == this.uri || "".equals(this.uri)){
        public HttpHandler build() {
            if (null == this.uri || "".equals(this.uri)) {
                throw new RuntimeException("uri is null");
            }
            if (this.uri.startsWith("http://")){
                this.uri = this.uri.substring(6,uri.length());
            } else if (this.uri.startsWith("https://")){
                this.uri = this.uri.substring(7,uri.length());
            if (this.uri.startsWith("http://")) {
                this.uri = this.uri.substring(6, uri.length());
            } else if (this.uri.startsWith("https://")) {
                this.uri = this.uri.substring(7, uri.length());
            }
            return new HttpHandler(this);
        }
@@ -175,7 +175,7 @@
        }
        public Builder setPath(String path) {
            if (!path.startsWith("/")){
            if (!path.startsWith("/")) {
                path = "/" + path;
            }
            this.path = path;
src/main/java/com/zy/common/utils/QrCode.java
@@ -45,7 +45,7 @@
        return image;
    }
    private static InputStream convert(BufferedImage image){
    private static InputStream convert(BufferedImage image) {
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        try {
            ImageIO.write(image, FORMAT_NAME, os);
@@ -85,7 +85,6 @@
//        response.getOutputStream().flush();
//        response.getOutputStream().close();
    }
}
src/main/java/com/zy/common/utils/RandomValidateCodeUtil.java
@@ -11,7 +11,7 @@
public class RandomValidateCodeUtil {
    public static final Map<String, String> code = new ConcurrentHashMap<>();
    private static String randString = "0123456789ABCDEFGHJKLMNPRSTUVWXYZ";//随机产生数字与字母组合的字符串
    private static int width = 60;// å›¾ç‰‡å®½
    private static int height = 27;// å›¾ç‰‡é«˜
@@ -97,7 +97,7 @@
                .length())));
        randomString += rand;
        g.translate(random.nextInt(3), random.nextInt(3));
        g.drawString(rand, 13 * (i-1)+2, 16);
        g.drawString(rand, 13 * (i - 1) + 2, 16);
        return randomString;
    }
src/main/java/com/zy/common/utils/RedisUtil.java
@@ -2,7 +2,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
src/main/java/com/zy/common/utils/ReflectUtils.java
@@ -17,17 +17,17 @@
    /**
     * èŽ·å–æŒ‡å®šClass(及其SuperClass)的成员变量
     */
    public static Field[] getAllFields(Class<?> cls){
    public static Field[] getAllFields(Class<?> cls) {
        return getAllFields(cls, null);
    }
    /**
     * é€’归合并基类Field
     */
    private static Field[] getAllFields(Class<?> cls, Field[] params){
    private static Field[] getAllFields(Class<?> cls, Field[] params) {
        Field[] fields = (params == null) ? cls.getDeclaredFields() : params;
        Class<?> superCls = cls.getSuperclass();
        if (superCls == null || superCls == Object.class){
        if (superCls == null || superCls == Object.class) {
            return fields;
        }
        Field[] superClsFields = superCls.getDeclaredFields();
@@ -38,13 +38,13 @@
    /**
     * åˆ é™¤Field数组的静态成员变量
     */
    public static Field[] removeStaticField(Field[] params){
    public static Field[] removeStaticField(Field[] params) {
        List<Field> fields = new ArrayList<>(Arrays.asList(params));
        if (fields.size() == 0){
        if (fields.size() == 0) {
            return null;
        }
        for (int i = fields.size() - 1; i >= 0; i--) {
            if(fields.get(i) == null){
            if (fields.get(i) == null) {
                fields.remove(i);
            } else if (Modifier.isStatic(fields.get(i).getModifiers())) {
                fields.remove(i);
@@ -57,13 +57,13 @@
    /**
     * é€’归获取成员变量对象(包含其基类)
     */
    public static Field getField(Class<?> cls, String fieldName){
    public static Field getField(Class<?> cls, String fieldName) {
        Field field;
        try {
            field = cls.getDeclaredField(fieldName);
        } catch (NoSuchFieldException e) {
            Class<?> superCls = cls.getSuperclass();
            if (superCls == null || superCls == Object.class){
            if (superCls == null || superCls == Object.class) {
                return null;
            }
            return getField(superCls, fieldName);
src/main/java/com/zy/common/utils/Struct.java
@@ -21,487 +21,487 @@
 * @author vincent
 */
public class Struct implements java.io.Serializable {
    private transient Map<String,byte[]> decodeByteMapping = new HashMap<>();
    private transient Map<String,byte[]> encodeByteMapping = new HashMap<>();
    // è§£ç å‰çš„原生字节数组
    private transient byte[] dataBytes = null;
    private transient byte[] decodeBytes = null;
    private transient byte[] encodeBytes = null;
    private transient byte[] unusedBytes = null;
    public Class getClassType(String name){
        return null;
    }
    private transient Map<String, byte[]> decodeByteMapping = new HashMap<>();
    private transient Map<String, byte[]> encodeByteMapping = new HashMap<>();
    // è§£ç å‰çš„原生字节数组
    private transient byte[] dataBytes = null;
    private transient byte[] decodeBytes = null;
    private transient byte[] encodeBytes = null;
    private transient byte[] unusedBytes = null;
    /**
     * åˆ¤æ–­å¤§å°ç«¯
     * @return true: å°ç«¯ / false: å¤§ç«¯
     */
    public boolean isReverse() {
        return this.getClass().getAnnotation(little.class)!=null;
    }
    @SuppressWarnings({"unchecked", "rawtypes"})
    public static <T extends Struct> T decode(Class<? extends Struct> cls, byte[] bytes) throws Exception {
        Struct instance = cls.newInstance();
        return instance.decode(bytes);
    }
    /**
     * èŽ·å–å­—èŠ‚æ•°ç»„
     */
    public byte[] toBytes() throws Exception {
        return encode(this);
    }
    public Map<String,String> toDecodeHexMapping() throws Exception{
        if(this.decodeByteMapping==null)this.decodeByteMapping=new HashMap<>();
        Map<String, String> mapping = getHex(this.decodeByteMapping);
        if(this.decodeBytes!=null){
            mapping.put("byte[]", Struct.toHex(this.decodeBytes));
        }
        return mapping;
    }
    public Map<String,String> toEncodeHexMapping() throws Exception{
        if(this.encodeBytes==null)this.encode(this);
        if(this.encodeByteMapping==null)this.encodeByteMapping=new HashMap<>();
        Map<String, String> mapping = getHex(this.encodeByteMapping);
        mapping.put("byte[]", Struct.toHex(this.encodeBytes));
        return mapping;
    }
    public Map<String,String> getHex(Map<String,byte[]> bytemapping) throws Exception {
        Map<String,String> map = new LinkedHashMap<>();
        Field[] fields = this.getClass().getFields();
        for (Field field : fields) {
            byte[] bytes = bytemapping.get(field.getName());
            if(bytes!=null){
                map.put(field.getName(), Struct.toHex(bytes));
            }
        }
        return map;
    }
    // è½¬java对象到数组
    public byte[] encode(Struct entity) throws Exception {
        ByteArrayOutputStream baOs = new ByteArrayOutputStream();
        write(new DataOutputStream(baOs), entity);
        entity.encodeBytes = baOs.toByteArray();
        return entity.encodeBytes;
    }
    /**
     * å†™æ•°æ®åˆ°è¾“出流
     *
     * @param dos
     * @param entity
     */
    public void write(DataOutputStream dos, Struct entity) throws Exception {
        if(entity==null)return;
        if(entity.encodeByteMapping==null)entity.encodeByteMapping=new HashMap<>();
        Field[] fields = entity.getClass().getFields();
        EvaluationContext context = new StandardEvaluationContext();
        for (Field field : Objects.requireNonNull(ReflectUtils.removeStaticField(fields))) {
            field.setAccessible(true);
            String name = field.getName();
            Class<?> type = field.getType();
            String typeName = type.getSimpleName();
            if(typeName.equals("Struct")){
                if(entity.getClassType(name)!=null){
                    type = entity.getClassType(name);
                    typeName = type.getSimpleName();
                }else if(field.get(entity)!=null){
                    type = field.get(entity).getClass();
                    typeName = type.getSimpleName();
                }
            }
            size size = field.getAnnotation(size.class);
            bit bit = field.getAnnotation(bit.class);
            expr expr = field.getAnnotation(expr.class);
            flag flag = field.getAnnotation(flag.class);
            if(size==null && bit==null && expr==null){
                continue;
            }
            int bited = 0;//已写位数
            int length = 0;//定义的长度
            if(size!=null){
                length = size.value();
                bited+=size.value()*8;
            }else if(bit!=null){
                //按位写方式未实现处理
                throw new RuntimeException("按位写方式未实现处理");
            }else if(expr!=null){
                ExpressionParser parser = new SpelExpressionParser();
                Expression exp = parser.parseExpression(expr.value());
                Integer len = null;
                try{
                    len = CommonUtils.parseInt(exp.getValue(context, entity));
                }catch (Exception e){
                    len = 0;
                }
                if(len!=null){
                    if(len==-1)continue;
                    length = len;
                    bited+=len*8;
                }
            }
            context.setVariable(name, field.get(entity));
            byte[] bytes = new byte[length];
            if (typeName.equals("int") || typeName.equals("Integer")){
                dos.write(bytes=convert(length,field.getInt(entity)));
            }else if (typeName.equals("long") || typeName.equals("Long")){
                dos.write(bytes=convert(length,field.getLong(entity)));
            }else if (typeName.equals("short") || typeName.equals("Short")){
                dos.write(bytes=convert(length,field.getShort(entity)));
            }else if (typeName.equals("byte") || typeName.equals("Byte")){
                dos.write(bytes=convert(length,field.getByte(entity)));
            }else if (typeName.equals("String")) {
                String str = (String) field.get(entity);
                if (str == null)
                    str = "";
                str = str.replaceAll(" ", " ");
                byte[] bts = null;
                if(flag!=null && flag.value().equals("ASCII")){
                    bts = Struct.StrToAsc(str);
                }else if(flag!=null && flag.value().equals("BCD")){
                    bts = Struct.str2Bcd(str);
                }else{
                    bts = str.getBytes();
                }
                if(length==0){//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            } else if (typeName.equals("byte[]")) {
                byte[] bts = (byte[]) field.get(entity);
                if(bts!=null){
                    if(length==0){//如果长度未设置,以当前实际的字节为准
                        bytes = new byte[bts.length];
                    }
                    System.arraycopy(bts, 0, bytes, 0, bts.length);
                    dos.write(bytes);
                }
            }else if (type.isArray()) {
                ByteArrayOutputStream baOs1 = new ByteArrayOutputStream();
                DataOutputStream dos1 = new DataOutputStream(baOs1);
                for (Object object : (Object[]) field.get(entity)){
                    write(dos1, (Struct) object);
                }
                byte[] bts  = baOs1.toByteArray();
                if(length==0){//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            } else {
                byte[] bts = encode((Struct) field.get(entity));
                if(length==0){//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            }
            entity.encodeByteMapping.put(name, bytes);
        }
    }
    public byte[] convert(int size, long value) throws Exception{
        ByteArrayOutputStream baOs = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baOs);
        switch(size){
        case 1://byte
            dos.write((byte) value);
            break;
        case 2://short
            dos.writeShort(this.isReverse() ? Short.reverseBytes((short)value) : (short)value);
            break;
        case 4://int
            dos.writeInt(this.isReverse() ? Integer.reverseBytes((int)value) : (int)value);
            break;
        case 8://long
            dos.writeLong(this.isReverse() ? Long.reverseBytes((long)value) : (long)value);
            break;
        }
        return baOs.toByteArray();
    }
    public long convertEx(long value,int size) throws Exception{
        switch(size){
        case 1://byte
            return value;
        case 2://short
            return (this.isReverse() ? Short.reverseBytes((short)value) : (short)value);
        case 4://int
            return (this.isReverse() ? Integer.reverseBytes((int)value) : (int)value);
        case 8://long
            return (this.isReverse() ? Long.reverseBytes((long)value) : (long)value);
        }
        return 0;
    }
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public static <T extends Struct> T decode(Class<? extends Struct> cls,byte[] bytes) throws Exception{
        Struct instance = cls.newInstance();
        return instance.decode(bytes);
    }
    /**
     * è§£ç ï¼š å­—节数组 ====>> java对象
     */
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public <T extends Struct> T decode(byte[] bytes) throws Exception{
        this.dataBytes = bytes;
        Struct instance = this;
        Class<? extends Struct> cls = this.getClass();
        Field[] fields = cls.getFields();
        if(this.decodeByteMapping==null)instance.decodeByteMapping=new HashMap();
        // spring el表达式
        EvaluationContext context = new StandardEvaluationContext();
        context.setVariable("_", bytes.length);
        int bited = 0;//已读位数
        for(Field field: Objects.requireNonNull(ReflectUtils.removeStaticField(fields))){
            size size = field.getAnnotation(size.class);
            bit bit = field.getAnnotation(bit.class);
            expr expr = field.getAnnotation(expr.class);
            flag flag = field.getAnnotation(flag.class);
            // æ²¡æœ‰size、bit、expr注解的变量不进行解析
            if(size==null && bit==null && expr==null){
                continue;
            }
            String name = field.getName();
            Class<?> type = field.getType();
            String typeName = type.getSimpleName();
            if(typeName.equals("Struct")){
                if(instance.getClassType(name)!=null){
                    type = instance.getClassType(name);
                    typeName = type.getSimpleName();
                }
            }
            context.setVariable("__", bytes.length-bited/8);
            byte[] bts = null;
            if(size!=null){
                bts = new byte[size.value()];
                System.arraycopy(bytes, bited/8, bts, 0, size.value());
                bited+=size.value()*8;
            }else if(bit!=null){
                int val = 0;
                String strBin = "";
                for(int i=bited;i<bited+bit.value();i++){//逐位扫描
                    if((bytes[i/8] & (1 << (i%8))) != 0){//如果位为1
                        strBin+="1";
                    }else{
                        strBin+="0";
                    }
                    val = Integer.parseInt(strBin, 2);
                }
                byte[] result = new byte[4];
                result[3] = (byte)(val);
                result[2] = (byte)(val >> 8);
                result[1] = (byte)(val >> 16);
                result[0] = (byte)(val >> 24);
                bts = new byte[(int)Math.ceil((double)bit.value()/8.0)];
                System.arraycopy(result, result.length-bts.length, bts, 0, bts.length);
                bited+=bit.value();
            }else if(expr!=null){
                ExpressionParser parser = new SpelExpressionParser();
                Expression exp = parser.parseExpression(expr.value());
                Integer len = CommonUtils.parseInt(exp.getValue(context,instance));
                if(len!=null){
                    if(len==-1)continue;
                    bts = new byte[len];
                    System.arraycopy(bytes, bited/8, bts, 0, len);
                    bited+=len*8;
                }
            }
            if(bts.length==0)continue;
            DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bts));
            if (typeName.equals("int") || typeName.equals("Integer")){
                field.setInt(instance,(int) convertEx(dis.readInt(),4));
            }else if (typeName.equals("long") || typeName.equals("Long")){
                field.setLong(instance, convertEx(dis.readLong(),8));
            }else if (typeName.equals("short") || typeName.equals("Short")){
                field.setShort(instance, (short) convertEx(dis.readShort(),2));
            }else if (typeName.equals("byte") || typeName.equals("Byte")){
                field.setByte(instance, (byte) convertEx(dis.readByte(),1));
            }else if (typeName.equals("byte[]")){
                field.set(instance, bts);
            }else if (typeName.equals("String")) {
                String strStr = new String(bts, StandardCharsets.UTF_8);
                if(flag!=null && flag.value().equals("BCD")){
                    strStr = bcd2Str(bts);
                }else if(flag!=null && flag.value().equals("ASCII")){
                    strStr = Struct.AscToStr(bts);
                }
                strStr = strStr.replaceAll("[\u0000]", "");
                field.set(instance, strStr);
            }else if (type.isArray()) {
                byte[] arrayBytes = bts;
                List list = new ArrayList();
                while(arrayBytes.length>0 && list.size()<256){
                    Struct item = decode((Class<? extends Struct>) type.getComponentType(),arrayBytes);
                    list.add(item);
                    arrayBytes = item.unusedBytes;
                }
                Object array = Array.newInstance(type.getComponentType(), list.size());
                for(int i=0;i<list.size();i++){
                    Array.set(array, i, list.get(i));
                }
                field.set(instance, array);
            }else if(type==Struct.class || Struct.class.isAssignableFrom(type)){
                byte[] arrayBytes = bts;
                Struct item = decode((Class<? extends Struct>) type,arrayBytes);
                field.set(instance, item);
            }else{
                throw new RuntimeException(cls.getSimpleName()+"字段"+field.getName()+"类型未知");
            }
            instance.decodeByteMapping.put(name, bts);
            context.setVariable(name, field.get(instance));
        }
        byte[] useBytes = new byte[bited/8];
        System.arraycopy(bytes, 0 , useBytes, 0, bited/8);
        instance.decodeBytes = useBytes;
        byte[] unusedBytes = new byte[bytes.length-(bited/8)];
        if(unusedBytes.length>0){
            System.arraycopy(bytes, useBytes.length , unusedBytes, 0, unusedBytes.length);
        }
        instance.unusedBytes = unusedBytes;
        return (T) instance;
    }
    // å­—节数组 ===>> è½¬ä¸ºåå…­è¿›åˆ¶å­—符串
    public static String toHex(byte[] bytes) {
    // å­—节数组 ===>> è½¬ä¸ºåå…­è¿›åˆ¶å­—符串
    public static String toHex(byte[] bytes) {
        StringBuilder buf = new StringBuilder(bytes.length * 2);
        for(byte b : bytes) { // ä½¿ç”¨String的format方法进行转换
        for (byte b : bytes) { // ä½¿ç”¨String的format方法进行转换
            buf.append(String.format("%02x", b & 0xff));
        }
        return buf.toString().toUpperCase();
    }
    public static byte[] toBytes(String str) {
        if(str == null || str.trim().equals("")) return new byte[0];
        if (str == null || str.trim().equals("")) return new byte[0];
        byte[] bytes = new byte[str.length() / 2];
        for(int i = 0; i < str.length() / 2; i++) {
        for (int i = 0; i < str.length() / 2; i++) {
            String subStr = str.substring(i * 2, i * 2 + 2);
            bytes[i] = (byte) Integer.parseInt(subStr, 16);
        }
        return bytes;
    }
    /**
     * @功能: BCD码转为10进制串(阿拉伯数据)
     * @参数: BCD码
     * @结果: 10进制串
     */
    public static String bcd2Str(byte[] bytes) {
        StringBuffer temp = new StringBuffer(bytes.length * 2);
        for (int i = 0; i < bytes.length; i++) {
            temp.append((byte) ((bytes[i] & 0xf0) >>> 4));
            temp.append((byte) (bytes[i] & 0x0f));
        }
        return temp.toString().substring(0, 1).equalsIgnoreCase("0") ? temp
                .toString().substring(1) : temp.toString();
    }
    /**
     * @功能: 10进制串转为BCD码
     * @参数: 10进制串
     * @结果: BCD码
     */
    public static byte[] str2Bcd(String asc) {
        int len = asc.length();
        int mod = len % 2;
        if (mod != 0) {
            asc = "0" + asc;
            len = asc.length();
        }
        byte abt[] = new byte[len];
        if (len >= 2) {
            len = len / 2;
        }
        byte bbt[] = new byte[len];
        abt = asc.getBytes();
        int j, k;
        for (int p = 0; p < asc.length() / 2; p++) {
            if ((abt[2 * p] >= '0') && (abt[2 * p] <= '9')) {
                j = abt[2 * p] - '0';
            } else if ((abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) {
                j = abt[2 * p] - 'a' + 0x0a;
            } else {
                j = abt[2 * p] - 'A' + 0x0a;
            }
            if ((abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) {
                k = abt[2 * p + 1] - '0';
            } else if ((abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) {
                k = abt[2 * p + 1] - 'a' + 0x0a;
            } else {
                k = abt[2 * p + 1] - 'A' + 0x0a;
            }
            int a = (j << 4) + k;
            byte b = (byte) a;
            bbt[p] = b;
        }
        return bbt;
    }
    public static class TestMessage {
        public @size(1) byte begin = 0x7e;//起始符
        public @size(2) short type = 0;//消息ID
        public @bit(2) byte retain;//消息体属性>保留
        public @bit(1) byte subpkg;//消息体属性>是否分包,0表示不分包
        public @bit(3) byte encrypt;//消息体属性>加密方式,0表示不加密
        public @bit(10) short length;//消息体长度
        public @size(6) @flag("BCD") String number;//手机号码
        public @size(2) short serial;//消息流水号
        public @expr("#subpkg==1?2:0") short pkgs;//分包数
        public @expr("#subpkg==1?2:0") short index;//包序号
        public @expr("#length") byte[] data;//数据部分
        public @size(1) byte verify;//校验码
        public @size(1) byte end = 0x7e;//结束符
    }
    public static byte getXor(byte[] datas,int start, int end){
        byte temp=datas[start];
        for (int i = start+1; i <end; i++) {
            temp ^=datas[i];
        }
        return temp;
    /**
     * @功能: BCD码转为10进制串(阿拉伯数据)
     * @参数: BCD码
     * @结果: 10进制串
     */
    public static String bcd2Str(byte[] bytes) {
        StringBuffer temp = new StringBuffer(bytes.length * 2);
        for (int i = 0; i < bytes.length; i++) {
            temp.append((byte) ((bytes[i] & 0xf0) >>> 4));
            temp.append((byte) (bytes[i] & 0x0f));
        }
        return temp.toString().substring(0, 1).equalsIgnoreCase("0") ? temp
                .toString().substring(1) : temp.toString();
    }
    /**
     * @功能: 10进制串转为BCD码
     * @参数: 10进制串
     * @结果: BCD码
     */
    public static byte[] str2Bcd(String asc) {
        int len = asc.length();
        int mod = len % 2;
        if (mod != 0) {
            asc = "0" + asc;
            len = asc.length();
        }
        byte abt[] = new byte[len];
        if (len >= 2) {
            len = len / 2;
        }
        byte bbt[] = new byte[len];
        abt = asc.getBytes();
        int j, k;
        for (int p = 0; p < asc.length() / 2; p++) {
            if ((abt[2 * p] >= '0') && (abt[2 * p] <= '9')) {
                j = abt[2 * p] - '0';
            } else if ((abt[2 * p] >= 'a') && (abt[2 * p] <= 'z')) {
                j = abt[2 * p] - 'a' + 0x0a;
            } else {
                j = abt[2 * p] - 'A' + 0x0a;
            }
            if ((abt[2 * p + 1] >= '0') && (abt[2 * p + 1] <= '9')) {
                k = abt[2 * p + 1] - '0';
            } else if ((abt[2 * p + 1] >= 'a') && (abt[2 * p + 1] <= 'z')) {
                k = abt[2 * p + 1] - 'a' + 0x0a;
            } else {
                k = abt[2 * p + 1] - 'A' + 0x0a;
            }
            int a = (j << 4) + k;
            byte b = (byte) a;
            bbt[p] = b;
        }
        return bbt;
    }
    public static byte getXor(byte[] datas, int start, int end) {
        byte temp = datas[start];
        for (int i = start + 1; i < end; i++) {
            temp ^= datas[i];
        }
        return temp;
    }
    /**
     * æ±‚校验和的算法
     * @param b éœ€è¦æ±‚校验和的字节数组
     * @return æ ¡éªŒå’Œ
     */
    public static byte sumCheck(byte[] b,int start, int end){
    public static byte sumCheck(byte[] b, int start, int end) {
        int sum = 0;
        for(int i = start; i < end; i++){
        for (int i = start; i < end; i++) {
            sum = sum + b[i];
        }
        return (byte) (sum & 0xff);
    }
  //字符串转换为ascii
    public static byte[] StrToAsc(String content){
      try {
        return content.getBytes(StandardCharsets.US_ASCII);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    //字符串转换为ascii
    public static byte[] StrToAsc(String content) {
        try {
            return content.getBytes(StandardCharsets.US_ASCII);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    //ascii转换为string
    public static String AscToStr(byte[] bytes){
        StringBuffer sbu = new StringBuffer();
        for (byte aByte : bytes) {
            sbu.append(Character.toString((char) aByte));
        }
        return sbu.toString();
    public static String AscToStr(byte[] bytes) {
        StringBuffer sbu = new StringBuffer();
        for (byte aByte : bytes) {
            sbu.append(Character.toString((char) aByte));
        }
        return sbu.toString();
    }
    public Class getClassType(String name) {
        return null;
    }
    /**
     * åˆ¤æ–­å¤§å°ç«¯
     * @return true: å°ç«¯ / false: å¤§ç«¯
     */
    public boolean isReverse() {
        return this.getClass().getAnnotation(little.class) != null;
    }
    /**
     * èŽ·å–å­—èŠ‚æ•°ç»„
     */
    public byte[] toBytes() throws Exception {
        return encode(this);
    }
    public Map<String, String> toDecodeHexMapping() throws Exception {
        if (this.decodeByteMapping == null) this.decodeByteMapping = new HashMap<>();
        Map<String, String> mapping = getHex(this.decodeByteMapping);
        if (this.decodeBytes != null) {
            mapping.put("byte[]", Struct.toHex(this.decodeBytes));
        }
        return mapping;
    }
    public Map<String, String> toEncodeHexMapping() throws Exception {
        if (this.encodeBytes == null) this.encode(this);
        if (this.encodeByteMapping == null) this.encodeByteMapping = new HashMap<>();
        Map<String, String> mapping = getHex(this.encodeByteMapping);
        mapping.put("byte[]", Struct.toHex(this.encodeBytes));
        return mapping;
    }
    public Map<String, String> getHex(Map<String, byte[]> bytemapping) throws Exception {
        Map<String, String> map = new LinkedHashMap<>();
        Field[] fields = this.getClass().getFields();
        for (Field field : fields) {
            byte[] bytes = bytemapping.get(field.getName());
            if (bytes != null) {
                map.put(field.getName(), Struct.toHex(bytes));
            }
        }
        return map;
    }
    // è½¬java对象到数组
    public byte[] encode(Struct entity) throws Exception {
        ByteArrayOutputStream baOs = new ByteArrayOutputStream();
        write(new DataOutputStream(baOs), entity);
        entity.encodeBytes = baOs.toByteArray();
        return entity.encodeBytes;
    }
    /**
     * å†™æ•°æ®åˆ°è¾“出流
     *
     * @param dos
     * @param entity
     */
    public void write(DataOutputStream dos, Struct entity) throws Exception {
        if (entity == null) return;
        if (entity.encodeByteMapping == null) entity.encodeByteMapping = new HashMap<>();
        Field[] fields = entity.getClass().getFields();
        EvaluationContext context = new StandardEvaluationContext();
        for (Field field : Objects.requireNonNull(ReflectUtils.removeStaticField(fields))) {
            field.setAccessible(true);
            String name = field.getName();
            Class<?> type = field.getType();
            String typeName = type.getSimpleName();
            if (typeName.equals("Struct")) {
                if (entity.getClassType(name) != null) {
                    type = entity.getClassType(name);
                    typeName = type.getSimpleName();
                } else if (field.get(entity) != null) {
                    type = field.get(entity).getClass();
                    typeName = type.getSimpleName();
                }
            }
            size size = field.getAnnotation(size.class);
            bit bit = field.getAnnotation(bit.class);
            expr expr = field.getAnnotation(expr.class);
            flag flag = field.getAnnotation(flag.class);
            if (size == null && bit == null && expr == null) {
                continue;
            }
            int bited = 0;//已写位数
            int length = 0;//定义的长度
            if (size != null) {
                length = size.value();
                bited += size.value() * 8;
            } else if (bit != null) {
                //按位写方式未实现处理
                throw new RuntimeException("按位写方式未实现处理");
            } else if (expr != null) {
                ExpressionParser parser = new SpelExpressionParser();
                Expression exp = parser.parseExpression(expr.value());
                Integer len = null;
                try {
                    len = CommonUtils.parseInt(exp.getValue(context, entity));
                } catch (Exception e) {
                    len = 0;
                }
                if (len != null) {
                    if (len == -1) continue;
                    length = len;
                    bited += len * 8;
                }
            }
            context.setVariable(name, field.get(entity));
            byte[] bytes = new byte[length];
            if (typeName.equals("int") || typeName.equals("Integer")) {
                dos.write(bytes = convert(length, field.getInt(entity)));
            } else if (typeName.equals("long") || typeName.equals("Long")) {
                dos.write(bytes = convert(length, field.getLong(entity)));
            } else if (typeName.equals("short") || typeName.equals("Short")) {
                dos.write(bytes = convert(length, field.getShort(entity)));
            } else if (typeName.equals("byte") || typeName.equals("Byte")) {
                dos.write(bytes = convert(length, field.getByte(entity)));
            } else if (typeName.equals("String")) {
                String str = (String) field.get(entity);
                if (str == null)
                    str = "";
                str = str.replaceAll(" ", " ");
                byte[] bts = null;
                if (flag != null && flag.value().equals("ASCII")) {
                    bts = Struct.StrToAsc(str);
                } else if (flag != null && flag.value().equals("BCD")) {
                    bts = Struct.str2Bcd(str);
                } else {
                    bts = str.getBytes();
                }
                if (length == 0) {//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            } else if (typeName.equals("byte[]")) {
                byte[] bts = (byte[]) field.get(entity);
                if (bts != null) {
                    if (length == 0) {//如果长度未设置,以当前实际的字节为准
                        bytes = new byte[bts.length];
                    }
                    System.arraycopy(bts, 0, bytes, 0, bts.length);
                    dos.write(bytes);
                }
            } else if (type.isArray()) {
                ByteArrayOutputStream baOs1 = new ByteArrayOutputStream();
                DataOutputStream dos1 = new DataOutputStream(baOs1);
                for (Object object : (Object[]) field.get(entity)) {
                    write(dos1, (Struct) object);
                }
                byte[] bts = baOs1.toByteArray();
                if (length == 0) {//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            } else {
                byte[] bts = encode((Struct) field.get(entity));
                if (length == 0) {//如果长度未设置,以当前实际的字节为准
                    bytes = new byte[bts.length];
                }
                System.arraycopy(bts, 0, bytes, 0, bts.length);
                dos.write(bytes);
            }
            entity.encodeByteMapping.put(name, bytes);
        }
    }
    public byte[] convert(int size, long value) throws Exception {
        ByteArrayOutputStream baOs = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baOs);
        switch (size) {
            case 1://byte
                dos.write((byte) value);
                break;
            case 2://short
                dos.writeShort(this.isReverse() ? Short.reverseBytes((short) value) : (short) value);
                break;
            case 4://int
                dos.writeInt(this.isReverse() ? Integer.reverseBytes((int) value) : (int) value);
                break;
            case 8://long
                dos.writeLong(this.isReverse() ? Long.reverseBytes((long) value) : (long) value);
                break;
        }
        return baOs.toByteArray();
    }
    public long convertEx(long value, int size) throws Exception {
        switch (size) {
            case 1://byte
                return value;
            case 2://short
                return (this.isReverse() ? Short.reverseBytes((short) value) : (short) value);
            case 4://int
                return (this.isReverse() ? Integer.reverseBytes((int) value) : (int) value);
            case 8://long
                return (this.isReverse() ? Long.reverseBytes((long) value) : (long) value);
        }
        return 0;
    }
    /**
     * è§£ç ï¼š å­—节数组 ====>> java对象
     */
    @SuppressWarnings({"unchecked", "rawtypes"})
    public <T extends Struct> T decode(byte[] bytes) throws Exception {
        this.dataBytes = bytes;
        Struct instance = this;
        Class<? extends Struct> cls = this.getClass();
        Field[] fields = cls.getFields();
        if (this.decodeByteMapping == null) instance.decodeByteMapping = new HashMap();
        // spring el表达式
        EvaluationContext context = new StandardEvaluationContext();
        context.setVariable("_", bytes.length);
        int bited = 0;//已读位数
        for (Field field : Objects.requireNonNull(ReflectUtils.removeStaticField(fields))) {
            size size = field.getAnnotation(size.class);
            bit bit = field.getAnnotation(bit.class);
            expr expr = field.getAnnotation(expr.class);
            flag flag = field.getAnnotation(flag.class);
            // æ²¡æœ‰size、bit、expr注解的变量不进行解析
            if (size == null && bit == null && expr == null) {
                continue;
            }
            String name = field.getName();
            Class<?> type = field.getType();
            String typeName = type.getSimpleName();
            if (typeName.equals("Struct")) {
                if (instance.getClassType(name) != null) {
                    type = instance.getClassType(name);
                    typeName = type.getSimpleName();
                }
            }
            context.setVariable("__", bytes.length - bited / 8);
            byte[] bts = null;
            if (size != null) {
                bts = new byte[size.value()];
                System.arraycopy(bytes, bited / 8, bts, 0, size.value());
                bited += size.value() * 8;
            } else if (bit != null) {
                int val = 0;
                String strBin = "";
                for (int i = bited; i < bited + bit.value(); i++) {//逐位扫描
                    if ((bytes[i / 8] & (1 << (i % 8))) != 0) {//如果位为1
                        strBin += "1";
                    } else {
                        strBin += "0";
                    }
                    val = Integer.parseInt(strBin, 2);
                }
                byte[] result = new byte[4];
                result[3] = (byte) (val);
                result[2] = (byte) (val >> 8);
                result[1] = (byte) (val >> 16);
                result[0] = (byte) (val >> 24);
                bts = new byte[(int) Math.ceil((double) bit.value() / 8.0)];
                System.arraycopy(result, result.length - bts.length, bts, 0, bts.length);
                bited += bit.value();
            } else if (expr != null) {
                ExpressionParser parser = new SpelExpressionParser();
                Expression exp = parser.parseExpression(expr.value());
                Integer len = CommonUtils.parseInt(exp.getValue(context, instance));
                if (len != null) {
                    if (len == -1) continue;
                    bts = new byte[len];
                    System.arraycopy(bytes, bited / 8, bts, 0, len);
                    bited += len * 8;
                }
            }
            if (bts.length == 0) continue;
            DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bts));
            if (typeName.equals("int") || typeName.equals("Integer")) {
                field.setInt(instance, (int) convertEx(dis.readInt(), 4));
            } else if (typeName.equals("long") || typeName.equals("Long")) {
                field.setLong(instance, convertEx(dis.readLong(), 8));
            } else if (typeName.equals("short") || typeName.equals("Short")) {
                field.setShort(instance, (short) convertEx(dis.readShort(), 2));
            } else if (typeName.equals("byte") || typeName.equals("Byte")) {
                field.setByte(instance, (byte) convertEx(dis.readByte(), 1));
            } else if (typeName.equals("byte[]")) {
                field.set(instance, bts);
            } else if (typeName.equals("String")) {
                String strStr = new String(bts, StandardCharsets.UTF_8);
                if (flag != null && flag.value().equals("BCD")) {
                    strStr = bcd2Str(bts);
                } else if (flag != null && flag.value().equals("ASCII")) {
                    strStr = Struct.AscToStr(bts);
                }
                strStr = strStr.replaceAll("[\u0000]", "");
                field.set(instance, strStr);
            } else if (type.isArray()) {
                byte[] arrayBytes = bts;
                List list = new ArrayList();
                while (arrayBytes.length > 0 && list.size() < 256) {
                    Struct item = decode((Class<? extends Struct>) type.getComponentType(), arrayBytes);
                    list.add(item);
                    arrayBytes = item.unusedBytes;
                }
                Object array = Array.newInstance(type.getComponentType(), list.size());
                for (int i = 0; i < list.size(); i++) {
                    Array.set(array, i, list.get(i));
                }
                field.set(instance, array);
            } else if (type == Struct.class || Struct.class.isAssignableFrom(type)) {
                byte[] arrayBytes = bts;
                Struct item = decode((Class<? extends Struct>) type, arrayBytes);
                field.set(instance, item);
            } else {
                throw new RuntimeException(cls.getSimpleName() + "字段" + field.getName() + "类型未知");
            }
            instance.decodeByteMapping.put(name, bts);
            context.setVariable(name, field.get(instance));
        }
        byte[] useBytes = new byte[bited / 8];
        System.arraycopy(bytes, 0, useBytes, 0, bited / 8);
        instance.decodeBytes = useBytes;
        byte[] unusedBytes = new byte[bytes.length - (bited / 8)];
        if (unusedBytes.length > 0) {
            System.arraycopy(bytes, useBytes.length, unusedBytes, 0, unusedBytes.length);
        }
        instance.unusedBytes = unusedBytes;
        return (T) instance;
    }
    public static class TestMessage {
        public @size(1) byte begin = 0x7e;//起始符
        public @size(2) short type = 0;//消息ID
        public @bit(2) byte retain;//消息体属性>保留
        public @bit(1) byte subpkg;//消息体属性>是否分包,0表示不分包
        public @bit(3) byte encrypt;//消息体属性>加密方式,0表示不加密
        public @bit(10) short length;//消息体长度
        public @size(6)
        @flag("BCD") String number;//手机号码
        public @size(2) short serial;//消息流水号
        public @expr("#subpkg==1?2:0") short pkgs;//分包数
        public @expr("#subpkg==1?2:0") short index;//包序号
        public @expr("#length") byte[] data;//数据部分
        public @size(1) byte verify;//校验码
        public @size(1) byte end = 0x7e;//结束符
    }
}
src/main/java/com/zy/common/utils/Synchro.java
@@ -14,9 +14,9 @@
    public static void Copy(Object source, Object dest) {
        try {
            BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(),Object.class);
            BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(), Object.class);
            PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors();
            BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(),Object.class);
            BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(), Object.class);
            PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors();
            for (PropertyDescriptor propertyDescriptor : sourceProperty) {
                for (PropertyDescriptor descriptor : destProperty) {
src/main/java/com/zy/common/utils/YamlUtils.java
@@ -18,16 +18,38 @@
@Component
public class YamlUtils {
    private static final String src = "src/main/resources/application-prod.yml";
    private final static String C = "#";
    private final static String CHARSET = "UTF-8";
    //读取后的每行数据
    private static List<String> LINES = null;
    @Autowired
    private DataResourceService dataResourceService;
    private static final String src = "src/main/resources/application-prod.yml";
    public static void main(String[] args) {
        Map<String, Integer> keyCountMap = new HashMap<>();
        try {
            List<String> lines = FileUtils.readLines(new File(src), CHARSET);
            for (int i = 0; i < lines.size(); i++) {
                String line = lines.get(i);
                if (line.contains(C)) {
                    String[] split = line.split(C);
                    String tmp = split[0];
                    String memo = split[1];//获取注释
    private final static String C = "#";
    private final static String CHARSET = "UTF-8";
                    String[] split1 = tmp.split(":");
                    String name = split1[0];
                    String data = split1[1];
                    System.out.println(memo);
                    System.out.println(name);
                    System.out.println(data);
                }
            }
    //读取后的每行数据
    private static List<String> LINES = null;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public Map<String, Object> read() {
        Yaml yaml = new Yaml();
@@ -54,7 +76,7 @@
                dataResource.setData(null);
            } else if (value instanceof Map) {
                dataResource.setData(JSON.toJSONString(value));
            }else {
            } else {
                dataResource.setData(value.toString());
            }
            dataResource.setCreateTime(new Date());
@@ -178,31 +200,6 @@
                data = "";
            }
            map.put(dataResource.getName(), data);
        }
    }
    public static void main(String[] args) {
        Map<String, Integer> keyCountMap = new HashMap<>();
        try {
            List<String> lines = FileUtils.readLines(new File(src), CHARSET);
            for (int i = 0; i < lines.size(); i++) {
                String line = lines.get(i);
                if (line.contains(C)) {
                    String[] split = line.split(C);
                    String tmp = split[0];
                    String memo = split[1];//获取注释
                    String[] split1 = tmp.split(":");
                    String name = split1[0];
                    String data = split1[1];
                    System.out.println(memo);
                    System.out.println(name);
                    System.out.println(data);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
src/main/java/com/zy/common/utils/excel/ExcelUtils.java
@@ -16,19 +16,9 @@
        new ExcelUtils().simpleWrite();
    }
    public void simpleRead(){
        ExcelReaderBuilder read = EasyExcel.read("/Users/vincent/Desktop/3869.xls", EnInitData.class, new EnInitDataListener());
        // è¯»å–第一个sheet(表),文件流会自动关闭
        read.sheet().doRead();
    }
    public void simpleWrite(){
        EasyExcel.write("/Users/vincent/Desktop/writeDemo.xls", EnInitData.class).sheet("lxt").doWrite(data());
    }
    public static List<EnInitData> data(){
    public static List<EnInitData> data() {
        List<EnInitData> list = new ArrayList<>();
        for (int i = 0; i<1000; i++) {
        for (int i = 0; i < 1000; i++) {
            EnInitData data = new EnInitData();
            data.setEnName("测试");
            data.setCode("test");
@@ -38,4 +28,14 @@
        }
        return list;
    }
    public void simpleRead() {
        ExcelReaderBuilder read = EasyExcel.read("/Users/vincent/Desktop/3869.xls", EnInitData.class, new EnInitDataListener());
        // è¯»å–第一个sheet(表),文件流会自动关闭
        read.sheet().doRead();
    }
    public void simpleWrite() {
        EasyExcel.write("/Users/vincent/Desktop/writeDemo.xls", EnInitData.class).sheet("lxt").doWrite(data());
    }
}
src/main/java/com/zy/common/web/AuthController.java
@@ -52,7 +52,7 @@
    @RequestMapping("/login.action")
    @ManagerAuth(value = ManagerAuth.Auth.NONE, memo = "登录")
    public R loginAction(String mobile, String password){
    public R loginAction(String mobile, String password) {
        //验证许可证是否有效
        LicenseVerify licenseVerify = new LicenseVerify();
        boolean verify = licenseVerify.verify();
@@ -68,13 +68,13 @@
        EntityWrapper<User> userWrapper = new EntityWrapper<>();
        userWrapper.eq("mobile", mobile);
        User user = userService.selectOne(userWrapper);
        if (Cools.isEmpty(user)){
        if (Cools.isEmpty(user)) {
            return R.parse(CodeRes.USER_10001);
        }
        if (user.getStatus()!=1){
        if (user.getStatus() != 1) {
            return R.parse(CodeRes.USER_10002);
        }
        if (!user.getPassword().equals(password)){
        if (!user.getPassword().equals(password)) {
            return R.parse(CodeRes.USER_10003);
        }
        String token = Cools.enToken(System.currentTimeMillis() + mobile, user.getPassword());
@@ -119,7 +119,7 @@
        int time = 0;
        while (time < 3000) {
            code = RandomValidateCodeUtil.code.get(sd);
            if (!Cools.isEmpty(code)){
            if (!Cools.isEmpty(code)) {
                break;
            } else {
                Thread.sleep(10);
@@ -132,13 +132,13 @@
    @RequestMapping("/user/detail/auth")
    @ManagerAuth
    public R userDetail(){
    public R userDetail() {
        return R.ok(userService.selectById(getUserId()));
    }
    @RequestMapping("/menu/auth")
    @ManagerAuth(memo = "首页菜单")
    public R menu(){
    public R menu() {
        // èŽ·å–æ‰€æœ‰ä¸€çº§èœå•
        List<Resource> oneLevel = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort"));
        User user = null;
@@ -151,7 +151,7 @@
            List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", user.getRoleId()));
            List<Long> resourceIds = new ArrayList<>();
            roleResources.forEach(roleResource -> resourceIds.add(roleResource.getResourceId()));
            if (resourceIds.isEmpty()){
            if (resourceIds.isEmpty()) {
                return R.ok();
            }
            resourceWrapper = new EntityWrapper<Resource>().in("id", resourceIds).eq("level", 2).eq("status", 1).orderBy("sort");
@@ -169,11 +169,11 @@
                    // æ˜¯å¦æ‹¥æœ‰æŸ¥çœ‹æƒé™
                    if (getUserId() != 9527) {
                        Resource view = resourceService.selectOne(new EntityWrapper<Resource>().eq("resource_id", resource.getId()).like("code", "view"));
                        if (!Cools.isEmpty(view)){
                        if (!Cools.isEmpty(view)) {
                            RoleResource param = new RoleResource();
                            param.setResourceId(view.getId());
                            param.setRoleId(user.getRoleId());
                            if (null == roleResourceService.selectOne(new EntityWrapper<>(param))){
                            if (null == roleResourceService.selectOne(new EntityWrapper<>(param))) {
                                continue;
                            }
                        }
@@ -197,11 +197,11 @@
    @RequestMapping("/power/list/auth")
    @ManagerAuth
    public R powerList(){
    public R powerList() {
        List<Resource> oneLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("level", 1).eq("status", 1).orderBy("sort"));
        List<Map> result = new ArrayList<>();
        // ä¸€çº§
        for (Resource oneLevel : oneLevels){
        for (Resource oneLevel : oneLevels) {
            List<Map> twoLevelsList = new ArrayList<>();
            Map<String, Object> oneLevelMap = new HashMap<>();
            oneLevelMap.put("title", oneLevel.getName());
@@ -210,7 +210,7 @@
            oneLevelMap.put("children", twoLevelsList);
            List<Resource> twoLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", oneLevel.getId()).eq("level", 2).eq("status", 1).orderBy("sort"));
            // äºŒçº§
            for (Resource twoLevel : twoLevels){
            for (Resource twoLevel : twoLevels) {
                Map<String, Object> twoLevelMap = new HashMap<>();
                twoLevelMap.put("title", twoLevel.getName());
                twoLevelMap.put("id", twoLevel.getId());
@@ -220,7 +220,7 @@
                twoLevelMap.put("children", threeLevelsList);
                // ä¸‰çº§
                List<Resource> threeLevels = resourceService.selectList(new EntityWrapper<Resource>().eq("resource_id", twoLevel.getId()).eq("level", 3).eq("status", 1).orderBy("sort"));
                for (Resource threeLevel : threeLevels){
                for (Resource threeLevel : threeLevels) {
                    Map<String, Object> threeLevelMap = new HashMap<>();
                    threeLevelMap.put("title", threeLevel.getName());
                    threeLevelMap.put("id", threeLevel.getId());
@@ -259,19 +259,19 @@
        List<Object> result = new ArrayList<>();
        // èœå•
        List<RoleResource> roleResources = roleResourceService.selectList(new EntityWrapper<RoleResource>().eq("role_id", roleId));
        for (RoleResource roleResource : roleResources){
        for (RoleResource roleResource : roleResources) {
            Resource resource = resourceService.selectById(roleResource.getResourceId());
            if (!Cools.isEmpty(resource)){
                if (resource.getLevel() == 3){
            if (!Cools.isEmpty(resource)) {
                if (resource.getLevel() == 3) {
                    result.add(resource.getId());
                }
            }
        }
        // åŠŸèƒ½
        List<RolePermission> rolePermissions = rolePermissionService.selectList(new EntityWrapper<RolePermission>().eq("role_id", roleId));
        for (RolePermission rolePermission : rolePermissions){
        for (RolePermission rolePermission : rolePermissions) {
            Permission permission = permissionService.selectById(rolePermission.getPermissionId());
            if (!Cools.isEmpty(permission)){
            if (!Cools.isEmpty(permission)) {
                result.add(permission.getAction());
            }
        }
@@ -281,12 +281,12 @@
    @RequestMapping("/power/auth")
    @ManagerAuth(memo = "授权")
    @Transactional
    public R power(Long roleId, String powers){
    public R power(Long roleId, String powers) {
        Role role = roleService.selectById(roleId);
        Long leaderId = role.getLeader();
        roleResourceService.delete(new EntityWrapper<RoleResource>().eq("role_id", roleId));
        rolePermissionService.delete(new EntityWrapper<RolePermission>().eq("role_id", roleId));
        if (!Cools.isEmpty(powers)){
        if (!Cools.isEmpty(powers)) {
            List<PowerDto> dtos = JSON.parseArray(powers, PowerDto.class);
            for (PowerDto dto : dtos) {
                Resource resource = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", dto.getTwo()).eq("level", 2));
@@ -304,14 +304,14 @@
                    roleResourceService.insert(roleResource);
                } else {
                    Permission permission = permissionService.selectOne(new EntityWrapper<Permission>().eq("action", dto.getTwo()));
                    if (!Cools.isEmpty(permission)){
                    if (!Cools.isEmpty(permission)) {
                        RolePermission rolePermission = new RolePermission();
                        rolePermission.setRoleId(roleId);
                        rolePermission.setPermissionId(permission.getId());
                        rolePermissionService.insert(rolePermission);
                    }
                }
                for (String three : dto.getThree()){
                for (String three : dto.getThree()) {
                    Resource resource1 = resourceService.selectOne(new EntityWrapper<Resource>().eq("id", three).eq("level", 3));
                    if (!Cools.isEmpty(resource1)) {
                        // æ ¡éªŒä¸Šçº§æƒé™
src/main/java/com/zy/common/web/BaseController.java
@@ -30,11 +30,11 @@
    @Autowired
    private UserService userService;
    protected Long getUserId(){
    protected Long getUserId() {
        return Long.parseLong(String.valueOf(request.getAttribute("userId")));
    }
    protected User getUser(){
    protected User getUser() {
        User user = userService.selectById(getUserId());
        if (null == user) {
            throw new CoolException(BaseRes.DENIED);
@@ -42,10 +42,10 @@
        return user;
    }
    protected String getComment(Class<?> cls, String fieldName){
    protected String getComment(Class<?> cls, String fieldName) {
        Field[] fields = Cools.getAllFields(cls);
        for (Field field : fields){
            if (fieldName.equals(field.getName())){
        for (Field field : fields) {
            if (fieldName.equals(field.getName())) {
                return field.getAnnotation(ApiModelProperty.class).value();
            }
        }
@@ -58,15 +58,15 @@
     * @param set æŽ’除字段集合
     * @param condition æœç´¢å†…容
     */
    protected <T> void allLike(Class<T> cls, Set<String> set, EntityWrapper<T> wrapper, String condition){
    protected <T> void allLike(Class<T> cls, Set<String> set, EntityWrapper<T> wrapper, String condition) {
        if (Cools.isEmpty(condition)) {
            return;
        }
        List<String> columns = new ArrayList<>();
        for (Field field :Cools.getAllFields(cls)){
        for (Field field : Cools.getAllFields(cls)) {
            if (Modifier.isFinal(field.getModifiers())
                    || Modifier.isStatic(field.getModifiers())
                    || Modifier.isTransient(field.getModifiers())){
                    || Modifier.isTransient(field.getModifiers())) {
                continue;
            }
            String column = null;
@@ -83,8 +83,8 @@
        if (columns.isEmpty()) {
            return;
        }
        for (int i=0;i<columns.size();i++){
            if (i==0){
        for (int i = 0; i < columns.size(); i++) {
            if (i == 0) {
                wrapper.andNew();
            } else {
                wrapper.or();
src/main/java/com/zy/common/web/RouterController.java
@@ -18,27 +18,27 @@
    @RequestMapping("/")
    public void index(HttpServletResponse response) {
        try{
            response.sendRedirect(contextPath+"/views/index.html");
        } catch (Exception ex){
        try {
            response.sendRedirect(contextPath + "/views/index.html");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    @RequestMapping("/login")
    public void login(HttpServletResponse response) {
        try{
            response.sendRedirect(contextPath+"/views/login.html");
        } catch (Exception ex){
        try {
            response.sendRedirect(contextPath + "/views/login.html");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    @RequestMapping("/control")
    public void control(HttpServletResponse response) {
        try{
            response.sendRedirect(contextPath+"/views/control.html");
        } catch (Exception ex){
        try {
            response.sendRedirect(contextPath + "/views/control.html");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
@@ -47,9 +47,9 @@
    public void monitor(@PathVariable("cnrId") Integer cnrId,
                        @PathVariable("ledId") Integer ledId,
                        HttpServletResponse response) {
        try{
            response.sendRedirect(contextPath+"/views/monitor/monitor.html"+ "?" + "crnId=" + cnrId + "&" + "ledId=" + ledId);
        } catch (Exception ex){
        try {
            response.sendRedirect(contextPath + "/views/monitor/monitor.html" + "?" + "crnId=" + cnrId + "&" + "ledId=" + ledId);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
@@ -57,9 +57,9 @@
    @RequestMapping("/monitor0/{ledId}")
    public void monitor(@PathVariable("ledId") Integer ledId,
                        HttpServletResponse response) {
        try{
            response.sendRedirect(contextPath+"/views/monitor/monitor0.html"+ "?"  + "crnId=" + 2 + "&" + "ledId=" + ledId);
        } catch (Exception ex){
        try {
            response.sendRedirect(contextPath + "/views/monitor/monitor0.html" + "?" + "crnId=" + 2 + "&" + "ledId=" + ledId);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
src/main/java/com/zy/core/DevpThread.java
@@ -4,7 +4,7 @@
import java.util.Map;
public interface DevpThread extends ThreadHandler  {
public interface DevpThread extends ThreadHandler {
    Map<Integer, StaProtocol> getStation();
src/main/java/com/zy/core/ServerBootstrap.java
@@ -5,9 +5,10 @@
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.LedSlave;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.*;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.SiemensCrnThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@@ -28,6 +29,7 @@
    @Autowired
    private MainProcess mainProcess;
    /**
     * PostConstruct会在加载servlet的时候运行一次
     * @throws InterruptedException
@@ -43,10 +45,11 @@
        initThread();
        // å¼€å§‹ä¸»æµç¨‹è¿›ç¨‹
        mainProcess.start();
        log.info("核心控制层已启动...............................................");
    }
    private void initMq(){
    private void initMq() {
        // åˆå§‹åŒ–堆垛机mq
        for (Slave crn : slaveProperties.getCrn()) {
            MessageQueue.init(SlaveType.Crn, crn);
@@ -73,7 +76,7 @@
//        }
    }
    private void initThread(){
    private void initThread() {
        // åˆå§‹åŒ–堆垛机线程
        log.info("初始化堆垛机线程...................................................");
        for (CrnSlave crn : slaveProperties.getCrn()) {
src/main/java/com/zy/core/cache/MessageQueue.java
@@ -1,6 +1,5 @@
package com.zy.core.cache;
import com.zy.asrs.utils.CommandUtils;
import com.zy.core.Slave;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
@@ -125,10 +124,10 @@
        }
    }
    public static void clear(SlaveType type, Integer id){
    public static void clear(SlaveType type, Integer id) {
        switch (type) {
            case Crn:
                CRN_EXCHANGE.get(id).clear();
                break;
            case Devp:
src/main/java/com/zy/core/cache/SlaveConnection.java
@@ -40,7 +40,7 @@
            return null;
        }
        String key = null;
        for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()){
        for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()) {
            if (entry.getValue() == threadHandler) {
                key = entry.getKey();
                break;
@@ -56,8 +56,8 @@
        }
    }
    private static String toKey(SlaveType type, Integer id){
        return type.toString()+_LINK+id;
    private static String toKey(SlaveType type, Integer id) {
        return type.toString() + _LINK + id;
    }
}
src/main/java/com/zy/core/enums/CrnFingerPosType.java
@@ -9,6 +9,7 @@
    public Integer id;
    public String desc;
    CrnFingerPosType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
src/main/java/com/zy/core/enums/CrnForkPosType.java
@@ -12,6 +12,7 @@
    public Integer id;
    public String desc;
    CrnForkPosType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
src/main/java/com/zy/core/enums/CrnLiftPosType.java
@@ -12,6 +12,7 @@
    public Integer id;
    public String desc;
    CrnLiftPosType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
src/main/java/com/zy/core/enums/CrnModeType.java
@@ -11,6 +11,7 @@
    public Integer id;
    public String desc;
    CrnModeType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
src/main/java/com/zy/core/enums/CrnStatusType.java
@@ -26,7 +26,7 @@
    HOMING(5, "放货等待"),
    ANTI_ORIGIN(6, "放货中"),
    PUT_COMPLETE(7, "回原点"),
//    MOVE_THE_SHIPPING_LOCATION(8, "移动到放货位置"),
    //    MOVE_THE_SHIPPING_LOCATION(8, "移动到放货位置"),
//    PUTTING(9, "放货中"),
    HANDLING_COMPLETED(10, "搬运完成等待WCS确认"),
    EMPTY_AVOIDANCE(11, "空载避让"),
@@ -36,6 +36,7 @@
    public Integer id;
    public String desc;
    CrnStatusType(Integer id, String desc) {
        this.id = id;
        this.desc = desc;
src/main/java/com/zy/core/enums/CrnTaskModeType.java
@@ -12,6 +12,7 @@
    ;
    public Integer id;
    CrnTaskModeType(Integer id) {
        this.id = id;
    }
src/main/java/com/zy/core/enums/SlaveType.java
@@ -10,7 +10,7 @@
    Car,
    ;
    public static SlaveType findInstance(String s){
    public static SlaveType findInstance(String s) {
        for (SlaveType type : SlaveType.values()) {
            if (type.toString().equals(s)) {
                return type;
src/main/java/com/zy/core/model/DevpSlave.java
@@ -27,6 +27,7 @@
    private List<Sta> pickSta = new ArrayList<>();
    @Data
    public static class Sta {
src/main/java/com/zy/core/model/command/CommandPackage.java
@@ -2,9 +2,6 @@
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * æŒ‡ä»¤æ•°æ®åŒ…
 */
src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -82,23 +82,13 @@
    private Short onlineWrk3 = 0;
    //恢复联机任务
    private Short onlineWrk4 = 0;
    private  Short reset = 0;
    private Short reset = 0;
    // ä»»åŠ¡ç¡®è®¤ 0:未确认 1:已确认
    private Short command = 0;
    //指令ID
    private Integer commandId;
    public void setTaskMode(Short taskMode){
        this.taskMode = taskMode;
        this.taskModeType = CrnTaskModeType.get(taskModeType);
    }
    public void setTaskMode(CrnTaskModeType type) {
        this.taskModeType = type;
        this.taskMode = CrnTaskModeType.get(type).id.shortValue();
    }
    public static void main(String[] args) {
        Date date = new Date();
@@ -107,7 +97,7 @@
        System.out.println(cal.get(Calendar.YEAR));
        //默认从0-11
        System.out.println(cal.get(Calendar.MONTH)+1);
        System.out.println(cal.get(Calendar.MONTH) + 1);
        System.out.println(cal.get(Calendar.DATE));
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        System.out.println("时");
@@ -122,4 +112,14 @@
        System.out.println("礼拜");
        System.out.println(mm);
    }
    public void setTaskMode(Short taskMode) {
        this.taskMode = taskMode;
        this.taskModeType = CrnTaskModeType.get(taskModeType);
    }
    public void setTaskMode(CrnTaskModeType type) {
        this.taskModeType = type;
        this.taskMode = CrnTaskModeType.get(type).id.shortValue();
    }
}
src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -221,92 +221,81 @@
     * è½½è´§å°æœ‰ç‰©
     */
    public Short loaded;
    /**
     * å †åž›æœºåž‚直故障代码(数值显示)
     */
    private Integer alarm1 = 0;
    /**
     * å †åž›æœºæ°´å¹³æ•…障代码(数值显示)
     */
    private Integer alarm2 = 0;;
    /**
     * å †åž›æœºè´§å‰æ•…障代码(数值显示)
     */
    private Integer alarm3 = 0;;
    /**
     * å †åž›æœºçŠ¶æ€æ•…éšœä»£ç ï¼ˆæ•°å€¼æ˜¾ç¤ºï¼‰
     */
    private Integer alarm4 = 0;;
    /**
     * å¼‚常1
     */
    private boolean[] error1;
    private CrnError1 crnError1;
    /**
     * å¼‚常2
     */
    private boolean[] error2;
    private CrnError2 crnError2;
    /**
     * å¼‚常3
     */
    private boolean[] error3;
    private CrnError3 crnError3;
    /**
     * å¼‚常4
     */
    private boolean[] error4;
    private CrnError4 crnError4;
    /**
     * X行走线速度m/min
     */
    private Float xSpeed = 0F;
    /**
     * Y行走线速度m/min
     */
    private Float ySpeed = 0F;
    /**
     * Z行走线速度m/min
     */
    private Float zSpeed = 0F;
    /**
     * å †åž›æœºç´¯è®¡èµ°è¡Œè·ç¦»km
     */
    public Float xDistance = 0F;
    /**
     * å †åž›æœºç´¯è®¡å‡é™è·ç¦»km
     */
    public Float yDistance = 0F;
    ;
    /**
     * å †åž›æœºç´¯è®¡èµ°è¡Œæ—¶é•¿h
     */
    public Float xDuration = 0F;
    ;
    /**w
     * å †åž›æœºç´¯è®¡å‡é™æ—¶é•¿h
     */
    public Float yDuration = 0F;
    ;
    /**
     * å †åž›æœºåž‚直故障代码(数值显示)
     */
    private Integer alarm1 = 0;
    /**
     * å †åž›æœºæ°´å¹³æ•…障代码(数值显示)
     */
    private Integer alarm2 = 0;
    /**
     * å †åž›æœºè´§å‰æ•…障代码(数值显示)
     */
    private Integer alarm3 = 0;
    /**
     * å †åž›æœºçŠ¶æ€æ•…éšœä»£ç ï¼ˆæ•°å€¼æ˜¾ç¤ºï¼‰
     */
    private Integer alarm4 = 0;
    /**
     * å¼‚常1
     */
    private boolean[] error1;
    private CrnError1 crnError1;
    /**
     * å¼‚常2
     */
    private boolean[] error2;
    private CrnError2 crnError2;
    /**
     * å¼‚常3
     */
    private boolean[] error3;
    private CrnError3 crnError3;
    /**
     * å¼‚常4
     */
    private boolean[] error4;
    private CrnError4 crnError4;
    /**
     * X行走线速度m/min
     */
    private Float xSpeed = 0F;
    /**
     * Y行走线速度m/min
     */
    private Float ySpeed = 0F;
    /**
     * Z行走线速度m/min
     */
    private Float zSpeed = 0F;
    //指令ID
    private Integer commandId;
    /**
     * æœ€è¿‘一次入出库类型
     *       I:入库
     *       O:出库
     */
    private String lastIo = "I";
    public void setMode(Short mode) {
        this.mode = mode;
@@ -338,12 +327,12 @@
        this.liftPos = CrnLiftPosType.get(type).id.shortValue();
    }
    public void setStatus(Short status){
    public void setStatus(Short status) {
        this.status = status;
        this.statusType = CrnStatusType.get(status);
    }
    public void setStatus(CrnStatusType type){
    public void setStatus(CrnStatusType type) {
        this.statusType = type;
        this.status = CrnStatusType.get(type).id.shortValue();
    }
@@ -353,7 +342,7 @@
        this.fingerPosType = CrnFingerPosType.get(type);
    }
    public void setError1(boolean[] error1){
    public void setError1(boolean[] error1) {
        this.error1 = error1;
        this.crnError1 = new CrnError1();
        this.crnError1.remoteStop = error1[0];
@@ -374,7 +363,7 @@
        this.crnError1.leftOverWidthErr2 = error1[15];
    }
    public void setError2(boolean[] error2){
    public void setError2(boolean[] error2) {
        this.error2 = error2;
        this.crnError2 = new CrnError2();
        this.crnError2.leftOverLenErr1 = error2[0];
@@ -425,15 +414,7 @@
        this.crnError4.zLooseBrakeTimeout = error4[3];
    }
    /**
     * æœ€è¿‘一次入出库类型
     *       I:入库
     *       O:出库
     */
    private String lastIo = "I";
    public BasCrnp toSqlModel(BasCrnp basCrnp){
    public BasCrnp toSqlModel(BasCrnp basCrnp) {
        basCrnp.setCrnErr(alarm.longValue());
        basCrnp.setWrkNo(taskNo.intValue());
        return basCrnp;
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -1,7 +1,6 @@
package com.zy.core.model.protocol;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.CommandInfo;
import lombok.Data;
import java.util.ArrayList;
@@ -106,7 +105,6 @@
    private Boolean upcontactErr = false; //顶升电机接触器故障
    private Short agvStartPick; //允许取货
    private Short agvStartPlace; //允许放货
    private Short agvTypeSign; //允许放货
@@ -118,85 +116,84 @@
    private List<Integer> alarm;
    public List<Integer> getAlarm(){
    public List<Integer> getAlarm() {
        List<Integer> alarm = new ArrayList<>();
        if (breakerErr){
        if (breakerErr) {
            alarm.add(1);
        }
        if (infraredErr){
        if (infraredErr) {
            alarm.add(2);
        }
        if (outTimeErr){
        if (outTimeErr) {
            alarm.add(3);
        }
        if (seizeSeatErr){
        if (seizeSeatErr) {
            alarm.add(4);
        }
        if (wrkYgoodsN){
        if (wrkYgoodsN) {
            alarm.add(5);
        }
        if (inverterErr){
        if (inverterErr) {
            alarm.add(6);
        }
        if (contactErr){
        if (contactErr) {
            alarm.add(7);
        }
        if (upcontactErr){
        if (upcontactErr) {
            alarm.add(8);
        }
        return alarm;
    }
    public BasDevp toSqlModel(){
    public BasDevp toSqlModel() {
        BasDevp basDevp = new BasDevp();
        basDevp.setDevNo(siteId);
        basDevp.setWrkNo(workNo.intValue());
        basDevp.setAutoing(autoing?"Y":"N");
        basDevp.setLoading(loading?"Y":"N");
        if (frontErr){
        basDevp.setAutoing(autoing ? "Y" : "N");
        basDevp.setLoading(loading ? "Y" : "N");
        if (frontErr) {
            basDevp.setStaErr(11);
        }else if (backErr){
        } else if (backErr) {
            basDevp.setStaErr(12);
        }else if (highErr){
        } else if (highErr) {
            basDevp.setStaErr(13);
        }else if (leftErr){
        } else if (leftErr) {
            basDevp.setStaErr(14);
        }else if (rightErr){
        } else if (rightErr) {
            basDevp.setStaErr(15);
        }else if (weightErr){
        } else if (weightErr) {
            basDevp.setStaErr(16);
        }else if (barcodeErr){
        } else if (barcodeErr) {
            basDevp.setStaErr(17);
        }else if (breakerErr){
        } else if (breakerErr) {
            basDevp.setStaErr(18);
        }else if (infraredErr){
        } else if (infraredErr) {
            basDevp.setStaErr(19);
        }else if (outTimeErr){
        } else if (outTimeErr) {
            basDevp.setStaErr(110);
        }else if (seizeSeatErr){
        } else if (seizeSeatErr) {
            basDevp.setStaErr(111);
        }else if (wrkYgoodsN){
        } else if (wrkYgoodsN) {
            basDevp.setStaErr(112);
        }else if (inverterErr){
        } else if (inverterErr) {
            basDevp.setStaErr(113);
        }else if (contactErr){
        } else if (contactErr) {
            basDevp.setStaErr(114);
        }else if (upcontactErr){
        } else if (upcontactErr) {
            basDevp.setStaErr(115);
        }else {
            if (!loading){
        } else {
            if (!loading) {
                basDevp.setStaErr(0);
            }
        }
        basDevp.setInEnable(inEnable?"Y":"N");
        basDevp.setOutEnable(outEnable?"Y":"N");
        basDevp.setInEnable(inEnable ? "Y" : "N");
        basDevp.setOutEnable(outEnable ? "Y" : "N");
        basDevp.setLocType1((short) 0);  // é«˜ä½Žç±»åž‹{0:未知,1:低库位,2:高库位}
        basDevp.setLocType2((short) 0);  // å®½çª„类型{0:未知,1:窄库位,2:宽库位}
        basDevp.setLocType3((short) 0);  // è½»é‡ç±»åž‹{0:未知,1:轻库位,2:重库位}
        basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
        basDevp.setInQty(inQty !=null ?(int)inQty : 0);
        basDevp.setInQty(inQty != null ? (int) inQty : 0);
//        basDevp.setAgvStartPick(agvStartPick.intValue());
//        basDevp.setAgvStartPlace(agvStartPlace.intValue());
        return basDevp;
src/main/java/com/zy/core/netty/AbstractInboundHandler.java
@@ -18,7 +18,7 @@
        T t = (T) obj;
        if (channelRead0(ctx, t)) {
            ctx.fireChannelRead(t);
        } else  {
        } else {
            // ç®¡é“中断,fireChannelRead未执行,需要手动释放堆外内存
            if (obj instanceof ByteBuf) {
                ReferenceCountUtil.release(obj);
src/main/java/com/zy/core/netty/HandlerInitializer.java
@@ -68,7 +68,7 @@
    /**
     *  Init channel attr track
     */
    private void initAttrTrack(Channel channel){
    private void initAttrTrack(Channel channel) {
        Attribute<Map<String, Object>> coolTrackAttr = channel.attr(ChannelAttrKey.DATA_MAP_ATTR);
        Map<String, Object> trackMap = new HashMap<>();
        coolTrackAttr.setIfAbsent(trackMap);
src/main/java/com/zy/core/netty/OnlineServer.java
@@ -33,18 +33,18 @@
    private EventLoopGroup bossGroup;
    private EventLoopGroup workerGroup;
    @Autowired
    public OnlineServer(TcpProperties tcpProperties, HandlerInitializer handlerInitializer) { ;
        this.tcpProperties = tcpProperties;
        this.handlerInitializer = handlerInitializer;
    }
    {
        bootstrap = new ServerBootstrap();
        bossGroup = new NioEventLoopGroup(1);
        workerGroup = new NioEventLoopGroup();
    }
    @Autowired
    public OnlineServer(TcpProperties tcpProperties, HandlerInitializer handlerInitializer) {
        ;
        this.tcpProperties = tcpProperties;
        this.handlerInitializer = handlerInitializer;
    }
    /**
     *  tcp server init
src/main/java/com/zy/core/netty/cache/ChannelCache.java
@@ -20,44 +20,43 @@
    private static Map<String, Channel> channelGroup = new ConcurrentHashMap<>();
    public static void setChannel(String uuid, Channel channel){
    public static void setChannel(String uuid, Channel channel) {
        // todo ç¼“存标记 ===>> åˆ†å¸ƒå¼ç³»ç»Ÿ
//        String hostName = SystemProperties.HOST_NAME;
        if (getChannel(uuid) == channel){
        if (getChannel(uuid) == channel) {
            return;
        }
        removeChannel(uuid);
        channelGroup.put(uuid, channel);
    }
    public static Channel getChannel(String uuid){
    public static Channel getChannel(String uuid) {
        return channelGroup.get(uuid);
    }
    public static void removeChannel(String uuid) {
        Channel channel = getChannel(uuid);
        if (null == channel){
        if (null == channel) {
            return;
        }
        channelGroup.remove(uuid);
        channel.close();
    }
    public static String removeChannel(Channel channel){
    public static String removeChannel(Channel channel) {
        String key = null;
        for (Map.Entry<String, Channel> entry : channelGroup.entrySet()){
            if (entry.getValue() == channel){
        for (Map.Entry<String, Channel> entry : channelGroup.entrySet()) {
            if (entry.getValue() == channel) {
                key = entry.getKey();
                break;
            }
        }
        if (null != key){
        if (null != key) {
            channelGroup.remove(key);
            return key;
        }
        return null;
    }
}
src/main/java/com/zy/core/netty/handle/PackageServerHandler.java
@@ -1,15 +1,10 @@
package com.zy.core.netty.handle;
import com.core.common.Cools;
import com.zy.core.Slave;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.netty.AbstractInboundHandler;
import com.zy.core.netty.cache.ChannelCache;
import com.zy.core.netty.domain.ChPackage;
import com.zy.core.netty.properties.TcpProperties;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -31,6 +26,19 @@
    @Autowired
    private TcpProperties tcpProperties;
    /**
     * æ•°æ®ä¸‹è¡Œ
     */
    public static void write(ChPackage chPackage) {
        String uuid = chPackage.getUuid();
        Channel channel = ChannelCache.getChannel(uuid);
        if (null == channel) {
            log.warn("通道uuid={} ä¸åœ¨çº¿", uuid);
            return;
        }
        channel.writeAndFlush(chPackage);
    }
    @Override
    protected boolean channelRead0(ChannelHandlerContext ctx, ChPackage pac) {
//        log.info("读码器【IP:{}】 ä¸Šè¡Œæ•°æ® ===>> {}", pac.getIp(), pac.getAscii());
@@ -50,18 +58,5 @@
//        }
        return true;
    }
    /**
     * æ•°æ®ä¸‹è¡Œ
     */
    public static void write(ChPackage chPackage){
        String uuid = chPackage.getUuid();
        Channel channel = ChannelCache.getChannel(uuid);
        if (null == channel){
            log.warn("通道uuid={} ä¸åœ¨çº¿", uuid);
            return;
        }
        channel.writeAndFlush(chPackage);
    }
}
src/main/java/com/zy/core/netty/handle/ProtectorHandler.java
@@ -37,7 +37,7 @@
            if (IdleState.READER_IDLE == e.state()) {
                String uuid = ChannelCache.removeChannel(ctx.channel());
                ctx.close();
                if (!Cools.isEmpty(uuid)){
                if (!Cools.isEmpty(uuid)) {
                    log.info("uuid={} ç©ºé—²å‰”除", uuid);
                }
            }
@@ -51,7 +51,7 @@
    public void channelInactive(ChannelHandlerContext ctx) {
        String uuid = ChannelCache.removeChannel(ctx.channel());
        ctx.close();
        if (!Cools.isEmpty(uuid)){
        if (!Cools.isEmpty(uuid)) {
            log.info("通道 uuid={} å¤±åŽ»è¿žæŽ¥", uuid);
        }
    }
src/main/java/com/zy/core/netty/handle/ProtocolDecoder.java
@@ -19,7 +19,7 @@
    private final SnowflakeIdWorker snowflakeIdWorker;
    public ProtocolDecoder(SnowflakeIdWorker snowflakeIdWorker){
    public ProtocolDecoder(SnowflakeIdWorker snowflakeIdWorker) {
        this.snowflakeIdWorker = snowflakeIdWorker;
    }
@@ -27,11 +27,11 @@
    @Override
    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> list) throws Exception {
        int startMark = indexOfStartMark(in);
        if (startMark == -1){
        if (startMark == -1) {
            return;
        }
        // åŽ»é™¤æ— ç”¨å‰ç¼€æŠ¥æ–‡
        if (startMark != 0){
        if (startMark != 0) {
            in.readerIndex(startMark);
            in.discardReadBytes();
        }
@@ -46,7 +46,7 @@
        list.add(analyzeProtocol(pac));
    }
    public ChPackage analyzeProtocol(ChPackage pac){
    public ChPackage analyzeProtocol(ChPackage pac) {
        ByteBuf byteBuf = pac.getSourceBuff();
@@ -84,14 +84,14 @@
    }
    // èŽ·å–æ ‡è¯†ä½ä¸‹æ ‡
    private int indexOfStartMark(ByteBuf inputBuffer){
    private int indexOfStartMark(ByteBuf inputBuffer) {
        int length = inputBuffer.writerIndex();
        // æŠ¥æ–‡é•¿åº¦è‡³å°‘大于2
        if (length < 2) {
            return -1;
        }
        int readerIndex = inputBuffer.readerIndex();
        for(int i = readerIndex; i < length - 1; i ++) {
        for (int i = readerIndex; i < length - 1; i++) {
            byte b1 = inputBuffer.getByte(i);
            // "#" = b1
            if (0x23 == b1) {
src/main/java/com/zy/core/netty/handle/ProtocolEncoder.java
@@ -27,7 +27,7 @@
    @Override
    protected void encode(ChannelHandlerContext ctx, Object obj, ByteBuf out) {
        boolean upgradeLog = true;
        if (obj instanceof ByteBuf){
        if (obj instanceof ByteBuf) {
            out.writeBytes((ByteBuf) obj);
        } else if (obj instanceof byte[]) {
            out.writeBytes((byte[]) obj);
src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -33,7 +33,7 @@
    public void setBarcode(String barcode) {
        this.barcode.delete(0, this.barcode.length());
        this.barcode.append(barcode);
        if(!Cools.isEmpty(barcode)) {
        if (!Cools.isEmpty(barcode)) {
            log.info("{}号条码器,检索数据:{}", slave.getId(), this.barcode);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
src/main/java/com/zy/core/thread/ScaleThread.java
@@ -53,11 +53,11 @@
                        scale = Double.parseDouble(s.substring(1));
                        //将称重重量写入设备基础数据中的gross_wt字段
                        if(scale > 20) {
                        if (scale > 20) {
                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
                            Integer staNo = slave.getId() == 1 ? 101 : 201;
                            BasDevp basDevp = basDevpService.selectById(staNo);
                            if(!Cools.isEmpty(basDevp)) {
                            if (!Cools.isEmpty(basDevp)) {
                                basDevp.setGrossWt(scale);
                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
                                    throw new Exception("更新数据库数据失败");
@@ -110,26 +110,25 @@
    public void close() {
        try {
            if (null != dataOutputStream) {
            dataOutputStream.close();
        }
        if (null != dataInputStream) {
            dataInputStream.close();
        }
                dataOutputStream.close();
            }
            if (null != dataInputStream) {
                dataInputStream.close();
            }
//        if (null != socket && !socket.isClosed()) {
//            socket.close();
//        }
        if (null != socket){
            socket.close();
        }
        socket = null;
            if (null != socket) {
                socket.close();
            }
            socket = null;
        } catch (IOException e) {
            log.error("SocketClient close Exception:" + e.getMessage());
        }
    }
    public void write(byte[] msg, int len) throws IOException {
        if (null != dataInputStream)
        {
        if (null != dataInputStream) {
            dataOutputStream.write(msg, 0, len);
            dataOutputStream.flush();
        }
@@ -145,8 +144,8 @@
        int len = dataInputStream.read(bytes);
        byte[] tempBytes = null;
        if (len > 0) {
        tempBytes = new byte[len];
        System.arraycopy(bytes, 0, tempBytes, 0, len);
            tempBytes = new byte[len];
            System.arraycopy(bytes, 0, tempBytes, 0, len);
        }
        return tempBytes;
    }
src/main/java/com/zy/system/controller/ApiController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/api/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Api> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -41,8 +41,8 @@
        return R.ok(apiService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -56,10 +56,10 @@
    @RequestMapping(value = "/api/edit/auth")
    @ManagerAuth
    public R edit(Api api) {
        if (Cools.isEmpty(api)){
        if (Cools.isEmpty(api)) {
            return R.error();
        }
        if (null == api.getId()){
        if (null == api.getId()) {
            apiService.insert(api);
        } else {
            apiService.updateById(api);
@@ -74,10 +74,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/api/update/auth")
    @RequestMapping(value = "/api/update/auth")
    @ManagerAuth
    public R update(Api api){
        if (Cools.isEmpty(api) || null==api.getId()){
    public R update(Api api) {
        if (Cools.isEmpty(api) || null == api.getId()) {
            return R.error();
        }
        apiService.updateById(api);
@@ -86,8 +86,8 @@
    @RequestMapping(value = "/api/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        apiService.deleteBatchIds(Arrays.asList(ids));
@@ -96,7 +96,7 @@
    @RequestMapping(value = "/api/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Api> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("api"));
@@ -112,7 +112,7 @@
        wrapper.like("id", condition);
        Page<Api> page = apiService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Api api : page.getRecords()){
        for (Api api : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", api.getId());
            map.put("value", api.getId());
src/main/java/com/zy/system/controller/ConfigController.java
@@ -23,6 +23,15 @@
    @Autowired
    private ConfigService configService;
    private static boolean checkJson(String val) {
        Object parse = null;
        try {
            parse = JSON.parse(val);
        } catch (Exception ignore) {
        }
        return parse != null;
    }
    @RequestMapping(value = "/config/{id}/auth")
    @ManagerAuth
    public R get(@PathVariable("id") Long id) {
@@ -31,11 +40,11 @@
    @RequestMapping(value = "/config/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Config> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -43,8 +52,8 @@
        return R.ok(configService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -58,15 +67,15 @@
    @RequestMapping(value = "/config/edit/auth")
    @ManagerAuth
    public R edit(Config config) {
        if (Cools.isEmpty(config)){
        if (Cools.isEmpty(config)) {
            return R.error();
        }
        if (config.getType() == 2){
            if (!checkJson(config.getValue())){
        if (config.getType() == 2) {
            if (!checkJson(config.getValue())) {
                return R.error("json解析失败");
            }
        }
        if (null == config.getId()){
        if (null == config.getId()) {
            configService.insert(config);
        } else {
            configService.updateById(config);
@@ -78,8 +87,8 @@
    @RequestMapping(value = "/config/add/auth")
    @ManagerAuth
    public R add(Config config) {
        if (config.getType() == 2){
            if (!checkJson(config.getValue())){
        if (config.getType() == 2) {
            if (!checkJson(config.getValue())) {
                return R.error("json解析失败");
            }
        }
@@ -87,14 +96,14 @@
        return R.ok();
    }
    @RequestMapping(value = "/config/update/auth")
    @RequestMapping(value = "/config/update/auth")
    @ManagerAuth
    public R update(Config config){
        if (Cools.isEmpty(config) || null==config.getId()){
    public R update(Config config) {
        if (Cools.isEmpty(config) || null == config.getId()) {
            return R.error();
        }
        if (config.getType() == 2){
            if (!checkJson(config.getValue())){
        if (config.getType() == 2) {
            if (!checkJson(config.getValue())) {
                return R.error("json解析失败");
            }
        }
@@ -105,8 +114,8 @@
    @RequestMapping(value = "/config/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        configService.deleteBatchIds(Arrays.asList(ids));
@@ -115,7 +124,7 @@
    @RequestMapping(value = "/config/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Config> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("config"));
@@ -131,7 +140,7 @@
        wrapper.like("id", condition);
        Page<Config> page = configService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Config config : page.getRecords()){
        for (Config config : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", config.getId());
            map.put("value", config.getId());
@@ -145,7 +154,7 @@
     */
    @RequestMapping(value = "/config/refresh/auth")
    @ManagerAuth
    public R refresh(){
    public R refresh() {
        Parameter parameter;
        try {
            parameter = Parameter.reset();
@@ -153,20 +162,10 @@
            e.printStackTrace();
            return R.error();
        }
        if (Cools.isEmpty(parameter)){
        if (Cools.isEmpty(parameter)) {
            return R.error();
        }
        return R.ok();
    }
    private static boolean checkJson(String val){
        Object parse = null;
        try {
            parse = JSON.parse(val);
        } catch (Exception ignore){
        }
        return parse != null;
    }
}
src/main/java/com/zy/system/controller/HomeController.java
@@ -30,7 +30,7 @@
    @RequestMapping("/top")
    @ManagerAuth
    public R top(){
    public R top() {
        int logTotal = operateLogService.selectCount(new EntityWrapper<>());
        int logWeek = operateLogService.selectCountByCurrentWeek();
        int userTotal = userService.selectCount(new EntityWrapper<>());
@@ -40,14 +40,14 @@
        result.put("logTotal", logTotal);
        result.put("logWeek", logWeek);
        result.put("userTotal", userTotal);
        result.put("live", Arith.multiplys(0, Arith.divides(2, loginWeek, userTotal), 100)+"%");
        result.put("live", Arith.multiplys(0, Arith.divides(2, loginWeek, userTotal), 100) + "%");
        return R.ok(result);
    }
    @RequestMapping("/report")
    @ManagerAuth
    public R top(@RequestParam(defaultValue = "1", value = "type", required = false)Integer type){
    public R top(@RequestParam(defaultValue = "1", value = "type", required = false) Integer type) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
@@ -71,15 +71,15 @@
    /**
     * è‡ªåŠ¨è¡¥é›¶
     */
    private List<Map<String, Object>> fill(List<Map<String, Object>> list, int start, int end){
        for (int i = start ; i <= end; i++){
    private List<Map<String, Object>> fill(List<Map<String, Object>> list, int start, int end) {
        for (int i = start; i <= end; i++) {
            boolean exist = false;
            for (Map seq : list){
                if (Integer.parseInt(String.valueOf(seq.get("node"))) == i){
            for (Map seq : list) {
                if (Integer.parseInt(String.valueOf(seq.get("node"))) == i) {
                    exist = true;
                }
            }
            if (!exist){
            if (!exist) {
                HashMap<String, Object> map = new HashMap<>();
                map.put("node", i);
                map.put("val", 0);
@@ -94,12 +94,12 @@
     * x轴单位转换
     * @param dot y轴数值保留小数位
     */
    private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot){
        for (Map<String, Object> map : list){
    private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot) {
        for (Map<String, Object> map : list) {
            Object val = map.get("val");
            map.put("val", Arith.multiplys(dot, 1, (Number) val));
            Object node = map.get("node");
            switch (statsType){
            switch (statsType) {
                case MONTH:
                    map.put("node", node + "号");
                    break;
@@ -113,15 +113,16 @@
        return list;
    }
    enum StatsType{
    enum StatsType {
        YEAR(1,1, 12),
        MONTH(2,1, 30),
        YEAR(1, 1, 12),
        MONTH(2, 1, 30),
        ;
        int id;
        int start;
        int end;
        StatsType(int id, int start, int end) {
            this.id = id;
            this.start = start;
@@ -130,8 +131,8 @@
        static StatsType get(int id) {
            StatsType[] values = StatsType.values();
            for (StatsType statsType : values){
                if (statsType.id == id){
            for (StatsType statsType : values) {
                if (statsType.id == id) {
                    return statsType;
                }
            }
src/main/java/com/zy/system/controller/HostController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/host/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Host> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -41,8 +41,8 @@
        return R.ok(hostService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -56,10 +56,10 @@
    @RequestMapping(value = "/host/edit/auth")
    @ManagerAuth
    public R edit(Host host) {
        if (Cools.isEmpty(host)){
        if (Cools.isEmpty(host)) {
            return R.error();
        }
        if (null == host.getId()){
        if (null == host.getId()) {
            hostService.insert(host);
        } else {
            hostService.updateById(host);
@@ -74,10 +74,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/host/update/auth")
    @RequestMapping(value = "/host/update/auth")
    @ManagerAuth
    public R update(Host host){
        if (Cools.isEmpty(host) || null==host.getId()){
    public R update(Host host) {
        if (Cools.isEmpty(host) || null == host.getId()) {
            return R.error();
        }
        hostService.updateById(host);
@@ -86,8 +86,8 @@
    @RequestMapping(value = "/host/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        hostService.deleteBatchIds(Arrays.asList(ids));
@@ -96,7 +96,7 @@
    @RequestMapping(value = "/host/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Host> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("host"));
@@ -112,7 +112,7 @@
        wrapper.like("name", condition);
        Page<Host> page = hostService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Host host : page.getRecords()){
        for (Host host : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", host.getId());
            map.put("value", host.getName());
src/main/java/com/zy/system/controller/LicenseCreatorController.java
@@ -34,10 +34,10 @@
     * èŽ·å–æœåŠ¡å™¨ç¡¬ä»¶ä¿¡æ¯
     * @param osName æ“ä½œç³»ç»Ÿç±»åž‹ï¼Œå¦‚果为空则自动判断
     */
    @RequestMapping(value = "/getServerInfos",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
    public LicenseCheck getServerInfos(@RequestParam(value = "osName",required = false) String osName) {
    @RequestMapping(value = "/getServerInfos", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
    public LicenseCheck getServerInfos(@RequestParam(value = "osName", required = false) String osName) {
        //操作系统类型
        if(Cools.isEmpty(osName)){
        if (Cools.isEmpty(osName)) {
            osName = System.getProperty("os.name");
        }
        osName = osName.toLowerCase();
@@ -49,7 +49,7 @@
            abstractServerInfos = new WindowsServerInfos();
        } else if (osName.startsWith("linux")) {
//            abstractServerInfos = new LinuxServerInfos();
        }else{//其他服务器类型
        } else {//其他服务器类型
            abstractServerInfos = new WindowsServerInfos();
        }
@@ -77,7 +77,7 @@
    }
    @RequestMapping(value = "/updateLicense")
    public R updateLicense(@RequestParam("file") MultipartFile[] files){
    public R updateLicense(@RequestParam("file") MultipartFile[] files) {
        MultipartFile file = files[0];
        String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath();
src/main/java/com/zy/system/controller/OperateLogController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/operateLog/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<OperateLog> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -41,8 +41,8 @@
        return R.ok(operateLogService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -56,10 +56,10 @@
    @RequestMapping(value = "/operateLog/edit/auth")
    @ManagerAuth
    public R edit(OperateLog operateLog) {
        if (Cools.isEmpty(operateLog)){
        if (Cools.isEmpty(operateLog)) {
            return R.error();
        }
        if (null == operateLog.getId()){
        if (null == operateLog.getId()) {
            operateLogService.insert(operateLog);
        } else {
            operateLogService.updateById(operateLog);
@@ -74,10 +74,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/operateLog/update/auth")
    @RequestMapping(value = "/operateLog/update/auth")
    @ManagerAuth
    public R update(OperateLog operateLog){
        if (Cools.isEmpty(operateLog) || null==operateLog.getId()){
    public R update(OperateLog operateLog) {
        if (Cools.isEmpty(operateLog) || null == operateLog.getId()) {
            return R.error();
        }
        operateLogService.updateById(operateLog);
@@ -86,8 +86,8 @@
    @RequestMapping(value = "/operateLog/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        operateLogService.deleteBatchIds(Arrays.asList(ids));
@@ -96,7 +96,7 @@
    @RequestMapping(value = "/operateLog/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<OperateLog> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("operateLog"));
@@ -112,7 +112,7 @@
        wrapper.like("id", condition);
        Page<OperateLog> page = operateLogService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (OperateLog operateLog : page.getRecords()){
        for (OperateLog operateLog : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", operateLog.getId());
            map.put("value", operateLog.getId());
src/main/java/com/zy/system/controller/PermissionController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/permission/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Permission> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -41,8 +41,8 @@
        return R.ok(permissionService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -56,10 +56,10 @@
    @RequestMapping(value = "/permission/edit/auth")
    @ManagerAuth
    public R edit(Permission permission) {
        if (Cools.isEmpty(permission)){
        if (Cools.isEmpty(permission)) {
            return R.error();
        }
        if (null == permission.getId()){
        if (null == permission.getId()) {
            permissionService.insert(permission);
        } else {
            permissionService.updateById(permission);
@@ -74,10 +74,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/permission/update/auth")
    @RequestMapping(value = "/permission/update/auth")
    @ManagerAuth
    public R update(Permission permission){
        if (Cools.isEmpty(permission) || null==permission.getId()){
    public R update(Permission permission) {
        if (Cools.isEmpty(permission) || null == permission.getId()) {
            return R.error();
        }
        permissionService.updateById(permission);
@@ -86,8 +86,8 @@
    @RequestMapping(value = "/permission/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        permissionService.deleteBatchIds(Arrays.asList(ids));
@@ -96,7 +96,7 @@
    @RequestMapping(value = "/permission/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Permission> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("permission"));
@@ -112,7 +112,7 @@
        wrapper.like("name", condition);
        Page<Permission> page = permissionService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Permission permission : page.getRecords()){
        for (Permission permission : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", permission.getId());
            map.put("value", permission.getName());
src/main/java/com/zy/system/controller/ResourceController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/resource/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Resource> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -43,23 +43,24 @@
    @RequestMapping(value = "/resource/tree/auth")
    @ManagerAuth
    public R tree(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R tree(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        EntityWrapper<Resource> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        else {
        if (!Cools.isEmpty(orderByField)) {
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        } else {
            wrapper.orderBy("sort");
        }
        return R.parse("0-操作成功").add(resourceService.selectList(wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -73,11 +74,11 @@
    @RequestMapping(value = "/resource/edit/auth")
    @ManagerAuth(memo = "菜单编辑")
    public R edit(Resource resource) {
        if (Cools.isEmpty(resource)){
        if (Cools.isEmpty(resource)) {
            return R.error();
        }
        if (null == resource.getId()){
            if (resource.getSort() == null){
        if (null == resource.getId()) {
            if (resource.getSort() == null) {
                resource.setSort(999);
            }
            resourceService.insert(resource);
@@ -94,10 +95,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/resource/update/auth")
    @RequestMapping(value = "/resource/update/auth")
    @ManagerAuth(memo = "菜单修改")
    public R update(Resource resource){
        if (Cools.isEmpty(resource) || null==resource.getId()){
    public R update(Resource resource) {
        if (Cools.isEmpty(resource) || null == resource.getId()) {
            return R.error();
        }
        resourceService.updateById(resource);
@@ -106,8 +107,8 @@
    @RequestMapping(value = "/resource/delete/auth")
    @ManagerAuth
    public R delete(@RequestParam(value="ids[]") Long[] ids){
        for (Long id : ids){
    public R delete(@RequestParam(value = "ids[]") Long[] ids) {
        for (Long id : ids) {
            resourceService.deleteById(id);
        }
        return R.ok();
@@ -115,7 +116,7 @@
    @RequestMapping(value = "/resource/export/auth")
    @ManagerAuth(memo = "菜单导出")
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Resource> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("resource"));
@@ -131,7 +132,7 @@
        wrapper.like("name", condition);
        Page<Resource> page = resourceService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Resource resource : page.getRecords()){
        for (Resource resource : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", resource.getId());
            map.put("value", resource.getName().concat("(").concat(resource.getLevel$().substring(0, 2).concat(")")));
src/main/java/com/zy/system/controller/RoleController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/role/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<Role> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -61,8 +61,8 @@
        return R.ok(roleService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -76,10 +76,10 @@
    @RequestMapping(value = "/role/edit/auth")
    @ManagerAuth(memo = "角色编辑")
    public R edit(Role role) {
        if (Cools.isEmpty(role)){
        if (Cools.isEmpty(role)) {
            return R.error();
        }
        if (null == role.getId()){
        if (null == role.getId()) {
            roleService.insert(role);
        } else {
            roleService.updateById(role);
@@ -94,10 +94,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/role/update/auth")
    @RequestMapping(value = "/role/update/auth")
    @ManagerAuth(memo = "角色修改")
    public R update(Role role){
        if (Cools.isEmpty(role) || null==role.getId()){
    public R update(Role role) {
        if (Cools.isEmpty(role) || null == role.getId()) {
            return R.error();
        }
        roleService.updateById(role);
@@ -106,8 +106,8 @@
    @RequestMapping(value = "/role/delete/auth")
    @ManagerAuth(memo = "角色删除")
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        roleService.deleteBatchIds(Arrays.asList(ids));
@@ -116,7 +116,7 @@
    @RequestMapping(value = "/role/export/auth")
    @ManagerAuth(memo = "角色导出")
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<Role> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("role"));
@@ -151,7 +151,7 @@
        Page<Role> page = roleService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Role role : page.getRecords()){
        for (Role role : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", role.getId());
            map.put("value", role.getName());
src/main/java/com/zy/system/controller/UserController.java
@@ -33,11 +33,11 @@
    @RequestMapping(value = "/user/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<User> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -63,8 +63,8 @@
        return R.ok(userService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -78,10 +78,10 @@
    @RequestMapping(value = "/user/edit/auth")
    @ManagerAuth(memo = "系统用户编辑")
    public R edit(User user) {
        if (Cools.isEmpty(user)){
        if (Cools.isEmpty(user)) {
            return R.error();
        }
        if (null == user.getId()){
        if (null == user.getId()) {
            userService.insert(user);
        } else {
            userService.updateById(user);
@@ -96,20 +96,20 @@
        return R.ok();
    }
    @RequestMapping(value = "/user/update/auth")
    @RequestMapping(value = "/user/update/auth")
    @ManagerAuth(memo = "系统用户修改")
    public R update(User user){
        if (Cools.isEmpty(user) || null==user.getId()){
    public R update(User user) {
        if (Cools.isEmpty(user) || null == user.getId()) {
            return R.error();
        }
        User entity = userService.selectById(user.getId());
        if (user.getPassword()!=null) {
        if (user.getPassword() != null) {
            entity.setPassword(user.getPassword());
        }
        if (user.getUsername()!=null) {
        if (user.getUsername() != null) {
            entity.setUsername(user.getUsername());
        }
        if (user.getMobile()!=null) {
        if (user.getMobile() != null) {
            entity.setMobile(user.getMobile());
        }
        userService.updateById(entity);
@@ -118,8 +118,8 @@
    @RequestMapping(value = "/user/delete/auth")
    @ManagerAuth(memo = "系统用户删除")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
        for (Long id : ids){
    public R delete(@RequestParam(value = "ids[]") Long[] ids) {
        for (Long id : ids) {
            userService.deleteById(id);
        }
        return R.ok();
@@ -127,7 +127,7 @@
    @RequestMapping(value = "/user/export/auth")
    @ManagerAuth(memo = "系统用户导出")
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<User> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("user"));
@@ -143,7 +143,7 @@
        wrapper.like("username", condition);
        Page<User> page = userService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (User user : page.getRecords()){
        for (User user : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", user.getId());
            map.put("value", user.getUsername());
src/main/java/com/zy/system/controller/UserLoginController.java
@@ -29,11 +29,11 @@
    @RequestMapping(value = "/userLogin/list/auth")
    @ManagerAuth
    public R list(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
    public R list(@RequestParam(defaultValue = "1") Integer curr,
                  @RequestParam(defaultValue = "10") Integer limit,
                  @RequestParam(required = false) String orderByField,
                  @RequestParam(required = false) String orderByType,
                  @RequestParam Map<String, Object> param) {
        excludeTrash(param);
        EntityWrapper<UserLogin> wrapper = new EntityWrapper<>();
        convert(param, wrapper);
@@ -41,8 +41,8 @@
        return R.ok(userLoginService.selectPage(new Page<>(curr, limit), wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
        for (Map.Entry<String, Object> entry : map.entrySet()){
    private void convert(Map<String, Object> map, EntityWrapper wrapper) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getKey().endsWith(">")) {
                wrapper.ge(Cools.deleteChar(entry.getKey()), DateUtils.convert(String.valueOf(entry.getValue())));
            } else if (entry.getKey().endsWith("<")) {
@@ -56,10 +56,10 @@
    @RequestMapping(value = "/userLogin/edit/auth")
    @ManagerAuth
    public R edit(UserLogin userLogin) {
        if (Cools.isEmpty(userLogin)){
        if (Cools.isEmpty(userLogin)) {
            return R.error();
        }
        if (null == userLogin.getId()){
        if (null == userLogin.getId()) {
            userLoginService.insert(userLogin);
        } else {
            userLoginService.updateById(userLogin);
@@ -74,10 +74,10 @@
        return R.ok();
    }
    @RequestMapping(value = "/userLogin/update/auth")
    @RequestMapping(value = "/userLogin/update/auth")
    @ManagerAuth
    public R update(UserLogin userLogin){
        if (Cools.isEmpty(userLogin) || null==userLogin.getId()){
    public R update(UserLogin userLogin) {
        if (Cools.isEmpty(userLogin) || null == userLogin.getId()) {
            return R.error();
        }
        userLoginService.updateById(userLogin);
@@ -86,8 +86,8 @@
    @RequestMapping(value = "/userLogin/delete/auth")
    @ManagerAuth
    public R delete(Integer[] ids){
        if (Cools.isEmpty(ids)){
    public R delete(Integer[] ids) {
        if (Cools.isEmpty(ids)) {
            return R.error();
        }
        userLoginService.deleteBatchIds(Arrays.asList(ids));
@@ -96,7 +96,7 @@
    @RequestMapping(value = "/userLogin/export/auth")
    @ManagerAuth
    public R export(@RequestBody JSONObject param){
    public R export(@RequestBody JSONObject param) {
        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
        EntityWrapper<UserLogin> wrapper = new EntityWrapper<>();
        Map<String, Object> map = excludeTrash(param.getJSONObject("userLogin"));
@@ -112,7 +112,7 @@
        wrapper.like("token", condition);
        Page<UserLogin> page = userLoginService.selectPage(new Page<>(0, 10), wrapper);
        List<Map<String, Object>> result = new ArrayList<>();
        for (UserLogin userLogin : page.getRecords()){
        for (UserLogin userLogin : page.getRecords()) {
            Map<String, Object> map = new HashMap<>();
            map.put("id", userLogin.getId());
            map.put("value", userLogin.getToken());
src/main/java/com/zy/system/entity/Api.java
@@ -58,9 +58,10 @@
     */
    private Short status;
    public Api() {}
    public Api() {
    }
    public Api(String namespace,Short oauth,String request,String response,Date createTime,Date updateTime,Short status) {
    public Api(String namespace, Short oauth, String request, String response, Date createTime, Date updateTime, Short status) {
        this.namespace = namespace;   // å‘½åç©ºé—´[非空]
        this.oauth = oauth;   // æŽˆæƒ[非空]
        this.request = request;   // è¯·æ±‚结构
@@ -90,9 +91,15 @@
        return oauth;
    }
    public String getOauth$(){
        if (null == this.oauth){ return null; }
        switch (this.oauth){
    public void setOauth(Short oauth) {
        this.oauth = oauth;
    }
    public String getOauth$() {
        if (null == this.oauth) {
            return null;
        }
        switch (this.oauth) {
            case 0:
                return "无需授权";
            case 1:
@@ -100,10 +107,6 @@
            default:
                return String.valueOf(this.oauth);
        }
    }
    public void setOauth(Short oauth) {
        this.oauth = oauth;
    }
    public String getRequest() {
@@ -126,39 +129,45 @@
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Short getStatus() {
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Short status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "有效";
            case 0:
@@ -166,10 +175,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Short status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/Config.java
@@ -42,9 +42,10 @@
     */
    private Short status;
    public Config() {}
    public Config() {
    }
    public Config(String name,String code,String value,Short type,Short status) {
    public Config(String name, String code, String value, Short type, Short status) {
        this.name = name;
        this.code = code;
        this.value = value;
@@ -96,9 +97,15 @@
        return type;
    }
    public String getType$(){
        if (null == this.type){ return null; }
        switch (this.type){
    public void setType(Short type) {
        this.type = type;
    }
    public String getType$() {
        if (null == this.type) {
            return null;
        }
        switch (this.type) {
            case 1:
                return "String";
            case 2:
@@ -108,17 +115,19 @@
        }
    }
    public void setType(Short type) {
        this.type = type;
    }
    public Short getStatus() {
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Short status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -126,10 +135,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Short status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/Host.java
@@ -48,9 +48,10 @@
     */
    private Integer status;
    public Host() {}
    public Host() {
    }
    public Host(String name,String flag,Date createTime,Date updateTime,Integer status) {
    public Host(String name, String flag, Date createTime, Date updateTime, Integer status) {
        this.name = name;
        this.flag = flag;
        this.createTime = createTime;
@@ -94,39 +95,45 @@
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateTime$() {
        if (Cools.isEmpty(this.updateTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Integer getStatus() {
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -134,10 +141,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/OperateLog.java
@@ -75,16 +75,17 @@
        return userId;
    }
    public String getUserId$(){
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getUserId$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.userId);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return user.getUsername();
        }
        return null;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getIp() {
@@ -115,15 +116,15 @@
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
src/main/java/com/zy/system/entity/Permission.java
@@ -42,9 +42,10 @@
     */
    private Short status;
    public Permission() {}
    public Permission() {
    }
    public Permission(String name,String action,Long resourceId,Short status) {
    public Permission(String name, String action, Long resourceId, Short status) {
        this.name = name;
        this.action = action;
        this.resourceId = resourceId;
@@ -86,26 +87,32 @@
        return resourceId;
    }
    public String getResourceName(){
    public void setResourceId(Long resourceId) {
        this.resourceId = resourceId;
    }
    public String getResourceName() {
        ResourceService service = SpringUtils.getBean(ResourceService.class);
        Resource resource = service.selectById(this.resourceId);
        if (!Cools.isEmpty(resource)){
        if (!Cools.isEmpty(resource)) {
            return resource.getName();
        }
        return null;
    }
    public void setResourceId(Long resourceId) {
        this.resourceId = resourceId;
    }
    public Short getStatus() {
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Short status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -113,10 +120,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Short status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/Resource.java
@@ -52,9 +52,10 @@
     */
    private Short status;
    public Resource() {}
    public Resource() {
    }
    public Resource(String code,String name,Long resourceId,Short level,Integer sort,Short status) {
    public Resource(String code, String name, Long resourceId, Short level, Integer sort, Short status) {
        this.code = code;
        this.name = name;
        this.resourceId = resourceId;
@@ -100,26 +101,32 @@
        return resourceId;
    }
    public String getResourceName(){
    public void setResourceId(Long resourceId) {
        this.resourceId = resourceId;
    }
    public String getResourceName() {
        ResourceService service = SpringUtils.getBean(ResourceService.class);
        Resource resource = service.selectById(this.resourceId);
        if (!Cools.isEmpty(resource)){
        if (!Cools.isEmpty(resource)) {
            return resource.getName();
        }
        return null;
    }
    public void setResourceId(Long resourceId) {
        this.resourceId = resourceId;
    }
    public Short getLevel() {
        return level;
    }
    public String getLevel$(){
        if (null == this.level){ return null; }
        switch (this.level){
    public void setLevel(Short level) {
        this.level = level;
    }
    public String getLevel$() {
        if (null == this.level) {
            return null;
        }
        switch (this.level) {
            case 1:
                return "一级菜单";
            case 2:
@@ -129,10 +136,6 @@
            default:
                return String.valueOf(this.level);
        }
    }
    public void setLevel(Short level) {
        this.level = level;
    }
    public Integer getSort() {
@@ -147,9 +150,15 @@
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Short status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "正常";
            case 0:
@@ -157,10 +166,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Short status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/Role.java
@@ -18,37 +18,38 @@
    /**
     * ç¼–号
     */
    @ApiModelProperty(value= "编号")
    @ApiModelProperty(value = "编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ç¼–码
     */
    @ApiModelProperty(value= "编码")
    @ApiModelProperty(value = "编码")
    private String code;
    /**
     * åç§°
     */
    @ApiModelProperty(value= "名称")
    @ApiModelProperty(value = "名称")
    private String name;
    /**
     * ä¸Šçº§
     */
    @ApiModelProperty(value= "上级")
    @ApiModelProperty(value = "上级")
    private Long leader;
    /**
     * è§’色等级 1: ä¸€çº§  2: äºŒçº§  3: ä¸‰çº§  4: å››çº§  5: äº”级  
     */
    @ApiModelProperty(value= "角色等级 1: ä¸€çº§  2: äºŒçº§  3: ä¸‰çº§  4: å››çº§  5: äº”级  ")
    @ApiModelProperty(value = "角色等级 1: ä¸€çº§  2: äºŒçº§  3: ä¸‰çº§  4: å››çº§  5: äº”级  ")
    private Short level;
    public Role() {}
    public Role() {
    }
    public Role(String code,String name,Long leader,Short level) {
    public Role(String code, String name, Long leader, Short level) {
        this.code = code;
        this.name = name;
        this.leader = leader;
@@ -90,26 +91,32 @@
        return leader;
    }
    public String getLeader$(){
    public void setLeader(Long leader) {
        this.leader = leader;
    }
    public String getLeader$() {
        RoleService service = SpringUtils.getBean(RoleService.class);
        Role role = service.selectById(this.leader);
        if (!Cools.isEmpty(role)){
        if (!Cools.isEmpty(role)) {
            return String.valueOf(role.getName());
        }
        return null;
    }
    public void setLeader(Long leader) {
        this.leader = leader;
    }
    public Short getLevel() {
        return level;
    }
    public String getLevel$(){
        if (null == this.level){ return null; }
        switch (this.level){
    public void setLevel(Short level) {
        this.level = level;
    }
    public String getLevel$() {
        if (null == this.level) {
            return null;
        }
        switch (this.level) {
            case 1:
                return "一级";
            case 2:
@@ -123,10 +130,6 @@
            default:
                return String.valueOf(this.level);
        }
    }
    public void setLevel(Short level) {
        this.level = level;
    }
src/main/java/com/zy/system/entity/RolePermission.java
@@ -36,9 +36,10 @@
    @TableField("permission_id")
    private Long permissionId;
    public RolePermission() {}
    public RolePermission() {
    }
    public RolePermission(Long roleId,Long permissionId) {
    public RolePermission(Long roleId, Long permissionId) {
        this.roleId = roleId;
        this.permissionId = permissionId;
    }
@@ -60,34 +61,34 @@
        return roleId;
    }
    public String getRoleName(){
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public String getRoleName() {
        RoleService service = SpringUtils.getBean(RoleService.class);
        Role role = service.selectById(this.roleId);
        if (!Cools.isEmpty(role)){
        if (!Cools.isEmpty(role)) {
            return role.getName();
        }
        return null;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public Long getPermissionId() {
        return permissionId;
    }
    public String getPermissionName(){
    public void setPermissionId(Long permissionId) {
        this.permissionId = permissionId;
    }
    public String getPermissionName() {
        PermissionService service = SpringUtils.getBean(PermissionService.class);
        Permission permission = service.selectById(this.permissionId);
        if (!Cools.isEmpty(permission)){
        if (!Cools.isEmpty(permission)) {
            return permission.getName();
        }
        return null;
    }
    public void setPermissionId(Long permissionId) {
        this.permissionId = permissionId;
    }
src/main/java/com/zy/system/entity/User.java
@@ -76,25 +76,25 @@
        return username;
    }
    public Long getHostId() {
        return hostId;
    public void setUsername(String username) {
        this.username = username;
    }
    public String getHostName() {
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.selectById(this.hostId);
        if (!Cools.isEmpty(host)){
            return host.getName();
        }
        return null;
    public Long getHostId() {
        return hostId;
    }
    public void setHostId(Long hostId) {
        this.hostId = hostId;
    }
    public void setUsername(String username) {
        this.username = username;
    public String getHostName() {
        HostService service = SpringUtils.getBean(HostService.class);
        Host host = service.selectById(this.hostId);
        if (!Cools.isEmpty(host)) {
            return host.getName();
        }
        return null;
    }
    public String getMobile() {
@@ -117,41 +117,47 @@
        return roleId;
    }
    public String getRoleName(){
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public String getRoleName() {
        RoleService service = SpringUtils.getBean(RoleService.class);
        Role role = service.selectById(this.roleId);
        if (!Cools.isEmpty(role)){
        if (!Cools.isEmpty(role)) {
            return role.getName();
        }
        return null;
    }
    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getStatus() {
        return status;
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 1:
                return "启用";
            case 2:
@@ -161,10 +167,6 @@
            default:
                return String.valueOf(this.status);
        }
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
src/main/java/com/zy/system/entity/UserLogin.java
@@ -52,16 +52,17 @@
        return userId;
    }
    public String getUserUsername(){
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getUserUsername() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.userId);
        if (!Cools.isEmpty(user)){
        if (!Cools.isEmpty(user)) {
            return user.getUsername();
        }
        return null;
    }
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public String getToken() {
@@ -76,15 +77,15 @@
        return createTime;
    }
    public String getCreateTime$(){
        if (Cools.isEmpty(this.createTime)){
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateTime$() {
        if (Cools.isEmpty(this.createTime)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
src/main/java/com/zy/system/entity/license/AbstractServerInfos.java
@@ -19,7 +19,7 @@
    /**
     * ç»„装需要额外校验的License参数
     */
    public LicenseCheck getServerInfos(){
    public LicenseCheck getServerInfos() {
        LicenseCheck result = new LicenseCheck();
        try {
@@ -27,8 +27,8 @@
            result.setMacAddress(this.getMacAddress());
            result.setCpuSerial(this.getCPUSerial());
            result.setMainBoardSerial(this.getMainBoardSerial());
        }catch (Exception e){
            logger.error("获取服务器硬件信息失败",e);
        } catch (Exception e) {
            logger.error("获取服务器硬件信息失败", e);
        }
        return result;
@@ -68,8 +68,8 @@
                InetAddress inetAddr = (InetAddress) inetAddresses.nextElement();
                //排除LoopbackAddress、SiteLocalAddress、LinkLocalAddress、MulticastAddress类型的IP地址
                if(!inetAddr.isLoopbackAddress() /*&& !inetAddr.isSiteLocalAddress()*/
                        && !inetAddr.isLinkLocalAddress() && !inetAddr.isMulticastAddress()){
                if (!inetAddr.isLoopbackAddress() /*&& !inetAddr.isSiteLocalAddress()*/
                        && !inetAddr.isLinkLocalAddress() && !inetAddr.isMulticastAddress()) {
                    result.add(inetAddr);
                }
            }
@@ -81,21 +81,21 @@
    /**
     * èŽ·å–æŸä¸ªç½‘ç»œæŽ¥å£çš„Mac地址
     */
    protected String getMacByInetAddress(InetAddress inetAddr){
    protected String getMacByInetAddress(InetAddress inetAddr) {
        try {
            byte[] mac = NetworkInterface.getByInetAddress(inetAddr).getHardwareAddress();
            StringBuffer stringBuffer = new StringBuffer();
            for(int i=0;i<mac.length;i++){
                if(i != 0) {
            for (int i = 0; i < mac.length; i++) {
                if (i != 0) {
                    stringBuffer.append("-");
                }
                //将十六进制byte转化为字符串
                String temp = Integer.toHexString(mac[i] & 0xff);
                if(temp.length() == 1){
                if (temp.length() == 1) {
                    stringBuffer.append("0" + temp);
                }else{
                } else {
                    stringBuffer.append(temp);
                }
            }
src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -16,13 +16,12 @@
/**
 * è‡ªå®šä¹‰LicenseManager,用于增加额外的服务器硬件信息校验
 */
public class CustomLicenseManager extends LicenseManager{
    private static Logger logger = LogManager.getLogger(CustomLicenseManager.class);
public class CustomLicenseManager extends LicenseManager {
    //XML编码
    private static final String XML_CHARSET = "UTF-8";
    //默认BUFSIZE
    private static final int DEFAULT_BUFSIZE = 8 * 1024;
    private static Logger logger = LogManager.getLogger(CustomLicenseManager.class);
    public CustomLicenseManager() {
@@ -57,7 +56,7 @@
        final GenericCertificate certificate = getPrivacyGuard().key2cert(key);
        notary.verify(certificate);
        final LicenseContent content = (LicenseContent)this.load(certificate.getEncoded());
        final LicenseContent content = (LicenseContent) this.load(certificate.getEncoded());
        this.validate(content);
        setLicenseKey(key);
        setCertificate(certificate);
@@ -75,13 +74,13 @@
        // Load license key from preferences,
        final byte[] key = getLicenseKey();
        if (null == key){
        if (null == key) {
            throw new NoLicenseInstalledException(getLicenseParam().getSubject());
        }
        certificate = getPrivacyGuard().key2cert(key);
        notary.verify(certificate);
        final LicenseContent content = (LicenseContent)this.load(certificate.getEncoded());
        final LicenseContent content = (LicenseContent) this.load(certificate.getEncoded());
        this.validate(content);
        setCertificate(certificate);
@@ -98,14 +97,14 @@
        final Date now = new Date();
        final Date notBefore = content.getNotBefore();
        final Date notAfter = content.getNotAfter();
        if (null != notAfter && now.after(notAfter)){
        if (null != notAfter && now.after(notAfter)) {
            throw new LicenseContentException("证书失效时间不能早于当前时间");
        }
        if (null != notBefore && null != notAfter && notAfter.before(notBefore)){
        if (null != notBefore && null != notAfter && notAfter.before(notBefore)) {
            throw new LicenseContentException("证书生效时间不能晚于证书失效时间");
        }
        final String consumerType = content.getConsumerType();
        if (null == consumerType){
        if (null == consumerType) {
            throw new LicenseContentException("用户类型不能为空");
        }
    }
@@ -126,27 +125,27 @@
        //当前服务器真实的参数信息
        LicenseCheck serverCheckModel = getServerInfos();
        if(expectedCheckModel != null && serverCheckModel != null){
        if (expectedCheckModel != null && serverCheckModel != null) {
            //校验IP地址
            if(!checkIpAddress(expectedCheckModel.getIpAddress(),serverCheckModel.getIpAddress())){
            if (!checkIpAddress(expectedCheckModel.getIpAddress(), serverCheckModel.getIpAddress())) {
                //throw new LicenseContentException("当前服务器的IP没在授权范围内");
            }
            //校验Mac地址
            if(!checkIpAddress(expectedCheckModel.getMacAddress(),serverCheckModel.getMacAddress())){
            if (!checkIpAddress(expectedCheckModel.getMacAddress(), serverCheckModel.getMacAddress())) {
                //throw new LicenseContentException("当前服务器的Mac地址没在授权范围内");
            }
            //校验主板序列号
            if(!checkSerial(expectedCheckModel.getMainBoardSerial(),serverCheckModel.getMainBoardSerial())){
            if (!checkSerial(expectedCheckModel.getMainBoardSerial(), serverCheckModel.getMainBoardSerial())) {
                throw new LicenseContentException("当前服务器的主板序列号没在授权范围内");
            }
            //校验CPU序列号
            if(!checkSerial(expectedCheckModel.getCpuSerial(),serverCheckModel.getCpuSerial())){
            if (!checkSerial(expectedCheckModel.getCpuSerial(), serverCheckModel.getCpuSerial())) {
                throw new LicenseContentException("当前服务器的CPU序列号没在授权范围内");
            }
        }else{
        } else {
            throw new LicenseContentException("不能获取服务器硬件信息");
        }
    }
@@ -155,27 +154,27 @@
    /**
     * é‡å†™XMLDecoder解析XML
     */
    private Object load(String encoded){
    private Object load(String encoded) {
        BufferedInputStream inputStream = null;
        XMLDecoder decoder = null;
        try {
            inputStream = new BufferedInputStream(new ByteArrayInputStream(encoded.getBytes(XML_CHARSET)));
            decoder = new XMLDecoder(new BufferedInputStream(inputStream, DEFAULT_BUFSIZE),null,null);
            decoder = new XMLDecoder(new BufferedInputStream(inputStream, DEFAULT_BUFSIZE), null, null);
            return decoder.readObject();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } finally {
            try {
                if(decoder != null){
                if (decoder != null) {
                    decoder.close();
                }
                if(inputStream != null){
                if (inputStream != null) {
                    inputStream.close();
                }
            } catch (Exception e) {
                logger.error("XMLDecoder解析XML失败",e);
                logger.error("XMLDecoder解析XML失败", e);
            }
        }
@@ -185,7 +184,7 @@
    /**
     * èŽ·å–å½“å‰æœåŠ¡å™¨éœ€è¦é¢å¤–æ ¡éªŒçš„License参数
     */
    private LicenseCheck getServerInfos(){
    private LicenseCheck getServerInfos() {
        //操作系统类型
        String osName = System.getProperty("os.name").toLowerCase();
        AbstractServerInfos abstractServerInfos = null;
@@ -195,7 +194,7 @@
            abstractServerInfos = new WindowsServerInfos();
        } else if (osName.startsWith("linux")) {
//            abstractServerInfos = new LinuxServerInfos();
        }else{//其他服务器类型
        } else {//其他服务器类型
            abstractServerInfos = new WindowsServerInfos();
        }
@@ -206,18 +205,18 @@
     * æ ¡éªŒå½“前服务器的IP/Mac地址是否在可被允许的IP范围内<br/>
     * å¦‚果存在IP在可被允许的IP/Mac地址范围内,则返回true
     */
    private boolean checkIpAddress(List<String> expectedList,List<String> serverList){
        if(expectedList != null && expectedList.size() > 0){
            if(serverList != null && serverList.size() > 0){
                for(String expected : expectedList){
                    if(serverList.contains(expected.trim())){
    private boolean checkIpAddress(List<String> expectedList, List<String> serverList) {
        if (expectedList != null && expectedList.size() > 0) {
            if (serverList != null && serverList.size() > 0) {
                for (String expected : expectedList) {
                    if (serverList.contains(expected.trim())) {
                        return true;
                    }
                }
            }
            return false;
        }else {
        } else {
            return true;
        }
    }
@@ -225,15 +224,15 @@
    /**
     * æ ¡éªŒå½“前服务器硬件(主板、CPU等)序列号是否在可允许范围内
     */
    private boolean checkSerial(String expectedSerial,String serverSerial){
        if(!Cools.isEmpty(expectedSerial)){
            if(!Cools.isEmpty(serverSerial)){
                if(expectedSerial.equals(serverSerial)){
    private boolean checkSerial(String expectedSerial, String serverSerial) {
        if (!Cools.isEmpty(expectedSerial)) {
            if (!Cools.isEmpty(serverSerial)) {
                if (expectedSerial.equals(serverSerial)) {
                    return true;
                }
            }
            return false;
        }else{
        } else {
            return true;
        }
    }
src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -53,14 +53,14 @@
    public void onApplicationEvent(ContextRefreshedEvent event) {
        //root application context æ²¡æœ‰parent
        ApplicationContext context = event.getApplicationContext().getParent();
        if(context == null){
        if (context == null) {
            loadLicense();
        }
    }
    //加载证书
    public boolean loadLicense() {
        if(!Cools.isEmpty(licensePath)){
        if (!Cools.isEmpty(licensePath)) {
            logger.info("++++++++ å¼€å§‹åŠ è½½è®¸å¯è¯ ++++++++");
            try {
src/main/java/com/zy/system/entity/license/LicenseCreator.java
@@ -13,8 +13,8 @@
 * License生成类
 */
public class LicenseCreator {
    private static Logger logger = LogManager.getLogger(LicenseCreator.class);
    private final static X500Principal DEFAULT_HOLDER_AND_ISSUER = new X500Principal("CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN");
    private static Logger logger = LogManager.getLogger(LicenseCreator.class);
    private LicenseCreatorParam param;
    public LicenseCreator(LicenseCreatorParam param) {
@@ -24,16 +24,16 @@
    /**
     * ç”ŸæˆLicense证书
     */
    public boolean generateLicense(){
    public boolean generateLicense() {
        try {
            LicenseManager licenseManager = new CustomLicenseManager(initLicenseParam());
            LicenseContent licenseContent = initLicenseContent();
            licenseManager.store(licenseContent,new File(param.getLicensePath()));
            licenseManager.store(licenseContent, new File(param.getLicensePath()));
            return true;
        }catch (Exception e){
            logger.error(MessageFormat.format("证书生成失败:{0}",param),e);
        } catch (Exception e) {
            logger.error(MessageFormat.format("证书生成失败:{0}", param), e);
            return false;
        }
    }
@@ -41,22 +41,22 @@
    /**
     * åˆå§‹åŒ–证书生成参数
     */
    private LicenseParam initLicenseParam(){
    private LicenseParam initLicenseParam() {
        Preferences preferences = Preferences.userNodeForPackage(LicenseCreator.class);
        //设置对证书内容加密的秘钥
        CipherParam cipherParam = new DefaultCipherParam(param.getStorePass());
        KeyStoreParam privateStoreParam = new CustomKeyStoreParam(LicenseCreator.class
                ,param.getPrivateKeysStorePath()
                ,param.getPrivateAlias()
                ,param.getStorePass()
                ,param.getKeyPass());
                , param.getPrivateKeysStorePath()
                , param.getPrivateAlias()
                , param.getStorePass()
                , param.getKeyPass());
        LicenseParam licenseParam = new DefaultLicenseParam(param.getSubject()
                ,preferences
                ,privateStoreParam
                ,cipherParam);
                , preferences
                , privateStoreParam
                , cipherParam);
        return licenseParam;
    }
@@ -64,7 +64,7 @@
    /**
     * è®¾ç½®è¯ä¹¦ç”Ÿæˆæ­£æ–‡ä¿¡æ¯
     */
    private LicenseContent initLicenseContent(){
    private LicenseContent initLicenseContent() {
        LicenseContent licenseContent = new LicenseContent();
        licenseContent.setHolder(DEFAULT_HOLDER_AND_ISSUER);
        licenseContent.setIssuer(DEFAULT_HOLDER_AND_ISSUER);
src/main/java/com/zy/system/entity/license/LicenseVerify.java
@@ -19,19 +19,19 @@
    /**
     * å®‰è£…License证书
     */
    public synchronized LicenseContent install(LicenseVerifyParam param){
    public synchronized LicenseContent install(LicenseVerifyParam param) {
        LicenseContent result = null;
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //1. å®‰è£…证书
        try{
        try {
            LicenseManager licenseManager = LicenseManagerHolder.getInstance(initLicenseParam(param));
            licenseManager.uninstall();
            result = licenseManager.install(new File(param.getLicensePath()));
            logger.info(MessageFormat.format("许可证加载成功,许可证有效期:{0} - {1}",format.format(result.getNotBefore()),format.format(result.getNotAfter())));
        }catch (Exception e){
            logger.error("许可证加载失败!",e);
            logger.info(MessageFormat.format("许可证加载成功,许可证有效期:{0} - {1}", format.format(result.getNotBefore()), format.format(result.getNotAfter())));
        } catch (Exception e) {
            logger.error("许可证加载失败!", e);
        }
        return result;
@@ -40,7 +40,7 @@
    /**
     * æ ¡éªŒLicense证书
     */
    public boolean verify(){
    public boolean verify() {
        try {
            LicenseManager licenseManager = LicenseManagerHolder.getInstance(null);
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -51,10 +51,10 @@
            }
            LicenseContent licenseContent = licenseManager.verify();
            logger.info(MessageFormat.format("许可证校验通过,许可证有效期:{0} - {1}",format.format(licenseContent.getNotBefore()),format.format(licenseContent.getNotAfter())));
            logger.info(MessageFormat.format("许可证校验通过,许可证有效期:{0} - {1}", format.format(licenseContent.getNotBefore()), format.format(licenseContent.getNotAfter())));
            return true;
        }catch (Exception e){
            logger.error("许可证校验失败!",e);
        } catch (Exception e) {
            logger.error("许可证校验失败!", e);
            return false;
        }
    }
@@ -62,7 +62,7 @@
    /**
     * æ ¡éªŒLicense证书并获取证书信息
     */
    public LicenseContent getVerifyInfo(){
    public LicenseContent getVerifyInfo() {
        LicenseManager licenseManager = LicenseManagerHolder.getInstance(null);
        if (!updateSystemTime()) {
@@ -74,8 +74,8 @@
        try {
            LicenseContent licenseContent = licenseManager.verify();
            return licenseContent;
        }catch (Exception e){
            logger.error("许可证校验失败!",e);
        } catch (Exception e) {
            logger.error("许可证校验失败!", e);
            return null;
        }
    }
@@ -85,21 +85,21 @@
     * @param param License校验类需要的参数
     * @return de.schlichtherle.license.LicenseParam
     */
    private LicenseParam initLicenseParam(LicenseVerifyParam param){
    private LicenseParam initLicenseParam(LicenseVerifyParam param) {
        Preferences preferences = Preferences.userNodeForPackage(LicenseVerify.class);
        CipherParam cipherParam = new DefaultCipherParam(param.getStorePass());
        KeyStoreParam publicStoreParam = new CustomKeyStoreParam(LicenseVerify.class
                ,param.getPublicKeysStorePath()
                ,param.getPublicAlias()
                ,param.getStorePass()
                ,null);
                , param.getPublicKeysStorePath()
                , param.getPublicAlias()
                , param.getStorePass()
                , null);
        return new DefaultLicenseParam(param.getSubject()
                ,preferences
                ,publicStoreParam
                ,cipherParam);
                , preferences
                , publicStoreParam
                , cipherParam);
    }
    /**
@@ -122,7 +122,7 @@
                node.put(key, String.valueOf(System.currentTimeMillis()));
                return true;
            }
        }else {
        } else {
            // å†™å…¥æ³¨å†Œè¡¨
            node.put(key, String.valueOf(System.currentTimeMillis()));
            return true;
src/main/java/com/zy/system/entity/license/WindowsServerInfos.java
@@ -17,7 +17,7 @@
        //获取所有网络接口
        List<InetAddress> inetAddresses = getLocalAllInetAddress();
        if(inetAddresses != null && inetAddresses.size() > 0){
        if (inetAddresses != null && inetAddresses.size() > 0) {
            result = inetAddresses.stream().map(InetAddress::getHostAddress).distinct().map(String::toLowerCase).collect(Collectors.toList());
        }
@@ -31,7 +31,7 @@
        //1. èŽ·å–æ‰€æœ‰ç½‘ç»œæŽ¥å£
        List<InetAddress> inetAddresses = getLocalAllInetAddress();
        if(inetAddresses != null && inetAddresses.size() > 0){
        if (inetAddresses != null && inetAddresses.size() > 0) {
            //2. èŽ·å–æ‰€æœ‰ç½‘ç»œæŽ¥å£çš„Mac地址
            result = inetAddresses.stream().map(this::getMacByInetAddress).distinct().collect(Collectors.toList());
        }
@@ -49,11 +49,11 @@
        process.getOutputStream().close();
        Scanner scanner = new Scanner(process.getInputStream());
        if(scanner.hasNext()){
        if (scanner.hasNext()) {
            scanner.next();
        }
        if(scanner.hasNext()){
        if (scanner.hasNext()) {
            serialNumber = scanner.next().trim();
        }
@@ -71,11 +71,11 @@
        process.getOutputStream().close();
        Scanner scanner = new Scanner(process.getInputStream());
        if(scanner.hasNext()){
        if (scanner.hasNext()) {
            scanner.next();
        }
        if(scanner.hasNext()){
        if (scanner.hasNext()) {
            serialNumber = scanner.next().trim();
        }
src/main/resources/mapper/TaskWrkMapper.xml
@@ -49,6 +49,13 @@
        and start_point = #{startPoint}
    </select>
    <select id="selectByBarcode" resultMap="BaseResultMap">
        select top 1 * from wcs_task_wrk
        where 1=1
          and io_type=3
          and barcode = #{barcode}
    </select>
    <select id="selectByWrkNo" resultMap="BaseResultMap">
        select top 1 * from wcs_task_wrk
        where 1=1
src/main/resources/mapper/TaskWrkReportLogMapper.xml
New file
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.TaskWrkReportLogMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.TaskWrkReportLog">
        <id column="id" property="id" />
        <result column="task_no" property="taskNo" />
        <result column="status" property="status" />
        <result column="wrk_no" property="wrkNo" />
        <result column="create_time" property="createTime" />
        <result column="io_type" property="ioType" />
        <result column="io_pri" property="ioPri" />
        <result column="start_point" property="startPoint" />
        <result column="target_point" property="targetPoint" />
        <result column="modi_user" property="modiUser" />
        <result column="modi_time" property="modiTime" />
        <result column="memo" property="memo" />
        <result column="barcode" property="barcode" />
        <result column="assign_time" property="assignTime" />
        <result column="execute_time" property="executeTime" />
        <result column="complete_time" property="completeTime" />
        <result column="cancel_time" property="cancelTime" />
        <result column="wrk_sts" property="wrkSts" />
        <result column="crn_no" property="crnNo" />
        <result column="command_step" property="commandStep" />
        <result column="transfer_mark" property="transferMark" />
    </resultMap>
</mapper>
src/main/resources/mapper/TaskWrkReportMapper.xml
New file
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.TaskWrkReportMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.TaskWrkReport">
        <result column="task_no" property="taskNo" />
        <result column="status" property="status" />
        <result column="wrk_no" property="wrkNo" />
        <result column="create_time" property="createTime" />
        <result column="io_type" property="ioType" />
        <result column="io_pri" property="ioPri" />
        <result column="start_point" property="startPoint" />
        <result column="target_point" property="targetPoint" />
        <result column="modi_user" property="modiUser" />
        <result column="modi_time" property="modiTime" />
        <result column="memo" property="memo" />
        <result column="barcode" property="barcode" />
        <result column="assign_time" property="assignTime" />
        <result column="execute_time" property="executeTime" />
        <result column="complete_time" property="completeTime" />
        <result column="cancel_time" property="cancelTime" />
        <result column="wrk_sts" property="wrkSts" />
        <result column="crn_no" property="crnNo" />
        <result column="command_step" property="commandStep" />
        <result column="transfer_mark" property="transferMark" />
        <result column="mark_start" property="markStart"/>
    </resultMap>
</mapper>
src/main/resources/mapper/WrkMastMapper.xml
@@ -177,7 +177,7 @@
        where wrk_no > 0)
        ))
        and io_type != 11
        and source_sta_no = #{sourceStaNo}
        and sta_no = #{staNo}
        order by io_time,wrk_no
    </select>
</mapper>
src/main/resources/wcsºÍwms½Ó¿Ú(2).docx
Binary files differ