From 523d8cf68615134c7780f74933e70a14edb60f01 Mon Sep 17 00:00:00 2001 From: skyouc <958836976@qq.com> Date: 星期五, 05 九月 2025 17:00:39 +0800 Subject: [PATCH] wcs联调功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java | 6 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java | 25 ++++- rsf-admin/src/page/orders/wave/WaveList.jsx | 2 rsf-open-api/src/main/resources/application-dev.yml | 8 +- rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java | 34 ++----- rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 44 +++++----- rsf-open-api/src/main/resources/application.yml | 2 rsf-open-api/src/main/resources/application-prod.yml | 20 ++++ rsf-admin/src/page/task/TaskList.jsx | 53 +++++++++++++ rsf-server/src/main/resources/application-prod.yml | 28 ++++++ rsf-server/src/main/resources/application.yml | 2 rsf-admin/src/i18n/zh.js | 1 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java | 2 rsf-admin/src/config/setting.js | 4 15 files changed, 164 insertions(+), 69 deletions(-) diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js index 41127a8..60520aa 100644 --- a/rsf-admin/src/config/setting.js +++ b/rsf-admin/src/config/setting.js @@ -45,4 +45,6 @@ export const DEFAULT_TYPE = 15; //榛樿鏁堢巼浼樺寲 15锛氭晥鐜囦紭鍖� 16锛氬厛杩涘厛鍑� -export const DEFAULT_WAVE_AUTO_EXCE = 'WaveAutoExce'; // \ No newline at end of file +export const DEFAULT_WAVE_AUTO_EXCE = 'WaveAutoExce'; // + +export const AUTO_RUN_CHECK_ORDERS = 'AUTO_RUN_CHECK_ORDERS'; // \ No newline at end of file diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js index 7de7d5e..980968e 100644 --- a/rsf-admin/src/i18n/zh.js +++ b/rsf-admin/src/i18n/zh.js @@ -1331,6 +1331,7 @@ batch: '鎵归噺鎿嶄綔', confirm: '纭', start: '鑷姩涓嬪彂', + autoStartLocs: '鑷姩璺戝簱', stopPub: '缁堟涓嬪彂', pause: '鏆傚仠', pick: '鎷f枡', diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx index a37fce6..081348c 100644 --- a/rsf-admin/src/page/orders/wave/WaveList.jsx +++ b/rsf-admin/src/page/orders/wave/WaveList.jsx @@ -152,7 +152,7 @@ rowClick={(id, resource, record) => false} expand={<WavePannel />} expandSingle={true} - omit={['id', 'createTime', 'createBy', 'createBy$', 'memo']} + omit={['id', 'createTime', 'createBy', 'createBy$']} > <NumberField source="id" /> <TextField source="code" label="table.field.wave.code" /> diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx index 4fa167a..55d5af7 100644 --- a/rsf-admin/src/page/task/TaskList.jsx +++ b/rsf-admin/src/page/task/TaskList.jsx @@ -37,7 +37,10 @@ import TaskPanel from "./TaskPanel"; import MyField from "../components/MyField"; import ConfirmButton from "../components/ConfirmButton"; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, AUTO_RUN_CHECK_ORDERS } from '@/config/setting'; +import PlayArrowOutlinedIcon from '@mui/icons-material/PlayArrowOutlined'; +import PauseIcon from '@mui/icons-material/Pause'; +import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline'; import * as Common from '@/utils/common'; import ColorizeOutlinedIcon from '@mui/icons-material/ColorizeOutlined'; import GradingOutlinedIcon from '@mui/icons-material/GradingOutlined'; @@ -67,7 +70,19 @@ const translate = useTranslate(); const refresh = useRefresh(); const [drawerVal, setDrawerVal] = useState(false); + const [autoExce, setAutoExce] = useState(false); const dict = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_warehouse_type')) || []; + + useEffect(() => { + getConfig() + }, []) + + const getConfig = async () => { + const { data: { code, data, msg } } = await request.get('/config/flag/' + AUTO_RUN_CHECK_ORDERS); + if (code === 200) { + setAutoExce(JSON.parse(data?.val)) + } + } // useEffect(() => { // const interval = setInterval(() => { @@ -127,6 +142,8 @@ sort={{ field: "sort", order: "desc" }} actions={( <TopToolbar> + <BulkAutoStartButton autoExce={autoExce} setAutoExce={setAutoExce}/> + <BulkAutoPauseButton autoExce={autoExce} setAutoExce={setAutoExce} /> <FilterButton /> <SelectColumnsButton preferenceKey='task' /> </TopToolbar> @@ -205,6 +222,40 @@ return (record?.taskStatus == 199 && record?.taskType == 107 ? <ConfirmButton label={"toolbar.check"} startIcon={<GradingOutlinedIcon />} onConfirm={checkClick} /> : <></>) } +/**鑷姩涓嬪彂浠诲姟**/ +const BulkAutoStartButton = ({ autoExce, setAutoExce }) => { + const notify = useNotify(); + const startClick = async () => { + setAutoExce(true) + const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: true, flag: 'AUTO_RUN_CHECK_ORDERS' }); + if (code === 200) { + notify(msg); + } else { + notify(msg); + } + } + return ( + !autoExce ? <Button label="toolbar.autoStartLocs" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} /> : <></> + ) +} + +const BulkAutoPauseButton = ({ autoExce, setAutoExce }) => { + const notify = useNotify(); + const pauseClick = async () => { + const { data: { code, data, msg } } = await request.post('/config/byFlag', { val: false, flag: 'AUTO_RUN_CHECK_ORDERS' }); + if (code === 200) { + notify(msg); + setAutoExce(false) + } else { + notify(msg); + } + } + return ( + autoExce ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseIcon />} /> : <></> + ) +} + + /** * 鎷f枡鍑哄簱 * @returns diff --git a/rsf-open-api/src/main/resources/application-dev.yml b/rsf-open-api/src/main/resources/application-dev.yml index ef16461..b79a379 100644 --- a/rsf-open-api/src/main/resources/application-dev.yml +++ b/rsf-open-api/src/main/resources/application-dev.yml @@ -14,10 +14,10 @@ # url: jdbc:mysql://47.76.147.249:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai # username: rsf username: root - url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai - password: 34821015 -# url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai -# password: xltys1995 +# url: jdbc:mysql://127.0.0.1:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai +# password: 34821015 + url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + password: xltys1995 type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 diff --git a/rsf-open-api/src/main/resources/application-prod.yml b/rsf-open-api/src/main/resources/application-prod.yml index 1c91565..decbc2c 100644 --- a/rsf-open-api/src/main/resources/application-prod.yml +++ b/rsf-open-api/src/main/resources/application-prod.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8081 servlet: context-path: /@pom.artifactId@ @@ -10,9 +10,9 @@ static-path-pattern: /** datasource: driver-class-name: com.mysql.jdbc.Driver - url: jdbc:mysql://192.168.4.24:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root - password: 34821015 + password: xltys1995 type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 @@ -66,3 +66,17 @@ stock: flagAvailable: true + + #骞冲彴鎺ュ彛淇℃伅閰嶇疆(濡傦細ERP, QMS, WCS绛�) + platform: + #RCS閾炬帴 + rcs: + #閾炬帴 + host: http://10.10.10.200 + #绔彛 + port: 8088 + wms: + #閾炬帴 + host: http://10.10.10.200 + #绔彛 + port: 8085 diff --git a/rsf-open-api/src/main/resources/application.yml b/rsf-open-api/src/main/resources/application.yml index dbcd3cd..89b98e4 100644 --- a/rsf-open-api/src/main/resources/application.yml +++ b/rsf-open-api/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: dev + active: prod mybatis-plus: mapper-locations: classpath:mapper/*/*.xml diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java index 3005f19..fc391e0 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java @@ -471,13 +471,25 @@ } /**鏂欑鎼繍涓紝 淇敼绔欑偣鐘舵��*/ - if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_OBIT.event)) { +// if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_OBIT.event)) { +// if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) +// || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) +// || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type) +// || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type) +// || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type) +// || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { +// +// } +// /**鍙栫瀹屾垚锛� 淇敼浠诲姟鐘舵��*/ +// } else + if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_END.event)) { if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { + if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, task.getOrgSite())); if (Objects.isNull(station)) { @@ -490,11 +502,20 @@ } } } + + if (!taskService.update(new LambdaUpdateWrapper<Task>() + .lt(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id) + .eq(Task::getTaskCode, task.getTaskCode()) + .set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) { + throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�"); + } } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type) || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)) { + + /**淇敼鍑哄簱绔欑偣鐘舵��*/ BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>() .eq(BasStation::getStationName, task.getTargSite())); @@ -507,26 +528,7 @@ throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�"); } } - } - /**鍙栫瀹屾垚锛� 淇敼浠诲姟鐘舵��*/ - } else if (params.getEventType().equals(CallBackEvent.CALL_BACK_EVENT_END.event)) { - if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { - if (!taskService.update(new LambdaUpdateWrapper<Task>() - .lt(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id) - .eq(Task::getTaskCode, task.getTaskCode()) - .set(Task::getTaskStatus, TaskStsType.COMPLETE_IN.id))) { - throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�"); - } - } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) - || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)) { + if (!taskService.update(new LambdaUpdateWrapper<Task>().eq(Task::getTaskCode, task.getTaskCode()) .lt(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id) .set(Task::getTaskStatus, TaskStsType.COMPLETE_OUT.id))) { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java index 40fb2c4..6e6344e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java @@ -13,7 +13,9 @@ import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.service.*; import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl; +import com.vincent.rsf.server.system.constant.GlobalConfigCode; import com.vincent.rsf.server.system.constant.SerialRuleCode; +import com.vincent.rsf.server.system.entity.Config; import com.vincent.rsf.server.system.service.ConfigService; import com.vincent.rsf.server.system.utils.SerialRuleUtils; import lombok.extern.slf4j.Slf4j; @@ -104,13 +106,12 @@ @Scheduled(cron = "0/35 * * * * ?") @Transactional(rollbackFor = Exception.class) public void autoCheckComplete() { -// Boolean autoRunArea = configService.getVal("AUTO_RUN_CHECK_ORDERS", Boolean.class); -// if (!autoRunArea) { -// return; -// } //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟 List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() - .in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type))); + .in(Task::getTaskType, Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, + TaskType.TASK_TYPE_PICK_IN.type, + TaskType.TASK_TYPE_PICK_AGAIN_OUT.type, + TaskType.TASK_TYPE_CHECK_IN.type))); if (!tasks.isEmpty()) { tasks.forEach(task -> { @@ -122,19 +123,13 @@ if (task.getTaskStatus().equals(TaskStsType.WAVE_SEED.id)) { if (!stationService.update(new LambdaUpdateWrapper<BasStation>() .eq(BasStation::getStationName, task.getTargSite()) - .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_F.type))) { + .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) { log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus()); -// throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�"); +// throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�"); } try { - taskService.pickOrCheckTask(task.getId(), Constants.TASK_TYPE_OUT_CHECK); + taskService.pickOrCheckTask(task.getId(), task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type) ? Constants.TASK_TYPE_OUT_CHECK : ""); - if (!stationService.update(new LambdaUpdateWrapper<BasStation>() - .eq(BasStation::getStationName, task.getTargSite()) - .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_R.type))) { - log.error("绔欑偣鐘舵�佷慨鏀瑰畬鎴愬け璐�,褰撳墠浠诲姟鐘舵�侊細", task.getTaskStatus()); -// throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�"); - } } catch (Exception e) { log.error("error====>", e); } @@ -152,10 +147,9 @@ * @version 1.0 */ @Scheduled(cron = "0/25 * * * * ?") -// @Scheduled(cron = "0 0/05 * * * ? ") public void genRun() { - Boolean flagAuto = configService.getVal("AUTO_RUN_CHECK_ORDERS", Boolean.class); - if (!flagAuto) { + Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.AUTO_RUN_CHECK_ORDERS)); + if (!Boolean.parseBoolean(config.getVal())) { return; } //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟 @@ -232,12 +226,6 @@ continue; } try { - //鐢熸垚鐩樼偣鍑哄簱浠诲姟锛岀珯鐐归绾� - if (!stationService.update(new LambdaUpdateWrapper<BasStation>() - .eq(BasStation::getStationName, deviceSite.getSite()) - .set(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_S.type))) { - throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�"); - } locItemService.generateTask(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val, locToTaskParams, getLoginUserId()); } catch (Exception e) { throw new CoolException(e.getMessage()); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java index d18a1c3..97bd9d9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java @@ -234,22 +234,26 @@ // } } + /** + * 闈炲厜鐢电珯鐐逛换鍔′笅鍙� + */ @Scheduled(cron = "0/5 * * * * ? ") @Transactional(rollbackFor = Exception.class) public void pubTaskToWcs() { Long loginUserId = SystemAuthUtils.getLoginUserId(); List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_LOC_MOVE.type, TaskType.TASK_TYPE_EMPITY_IN.type - , TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, + , TaskType.TASK_TYPE_CHECK_IN.type, TaskType.TASK_TYPE_MERGE_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_PICK_IN.type, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type, TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_MERGE_OUT.type); List<Integer> integers = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id); List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .in(Task::getTaskType, list) - .in(Task::getTaskStatus, integers) + .in(Task::getTaskStatus, integers).last("limit 1") .orderByDesc(Task::getSort)); for (Task task : tasks) { /**绉诲簱涓嶅仛绔欑偣鎿嶄綔*/ if (!task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { - BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>().eq(BasStation::getStationName, + BasStation station = basStationService.getOne(new LambdaQueryWrapper<BasStation>() + .eq(BasStation::getStationName, task.getTaskStatus().equals(TaskStsType.GENERATE_IN.id) ? task.getOrgSite() : task.getTargSite())); if (station.getType().equals(StationTypeEnum.STATION_TYPE_MUTI.type)) { continue; @@ -366,16 +370,25 @@ } /**鍒ゆ柇鏄惁鍏夌數绔欑偣锛岄潪鍏夊簵绔欑偣闇�绠℃帶绔欑偣鐘舵��*/ if (station.getType().equals(StationTypeEnum.STATION_TYPE_NORMAL.type)) { - if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { + if (task.getTaskType() <= TaskType.TASK_TYPE_CHECK_IN.type && !task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) { - throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�侊紒锛�"); + throw new CoolException("褰撳墠绔欑偣涓嶆槸F.鍦ㄥ簱鐘舵�佺姸鎬侊紒锛�"); + } + station.setUseStatus(LocStsType.LOC_STS_TYPE_R.type); + if (!basStationService.updateById(station)) { + throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�"); } } else if (task.getTaskType() >= TaskType.TASK_TYPE_OUT.type) { if (!station.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) { - throw new CoolException("鐩爣绔欑偣涓嶆槸O.绌洪棽鐘舵�侊紒锛�"); + throw new CoolException("鐩爣绔欑偣涓嶅O.绌洪棽鐘舵�侊紝鏃犳硶棰勭害鍑哄簱銆�"); + } + station.setUseStatus(LocStsType.LOC_STS_TYPE_S.type); + if (!basStationService.updateById(station)) { + throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�"); } } } + /**绉诲簱鍙傛暟*/ if (task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) { itemParam.setOriLoc(task.getOrgLoc()).setDestLoc(task.getTargLoc()); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java index 91e0d70..2e83811 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java @@ -137,7 +137,7 @@ //鎷f枡鍑哄簱 -- 鐩樼偣鍑哄簱 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() .eq(DeviceSite::getSite, siteNo) - .eq(DeviceSite::getChannel, loc.getChannel()) + .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel()) .eq(DeviceSite::getType, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)); if (Objects.isNull(deviceSite)) { throw new CoolException("绔欑偣涓嶆敮鎸佹嫞鏂欏嚭搴擄紒锛�"); @@ -146,7 +146,7 @@ } else { //鍏ㄦ澘鍑哄簱 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() - .eq(DeviceSite::getChannel, loc.getChannel()) + .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()) .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_OUT.type)); if (Objects.isNull(deviceSite)) { throw new CoolException("绔欑偣涓嶆敮鎸佸叏鏉垮嚭搴擄紒锛�"); @@ -294,7 +294,7 @@ //鐩爣搴撲綅涓虹┖锛岃嚜鍔ㄨ幏鍙栨柊搴撲綅 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type) - .eq(DeviceSite::getChannel, orgLoc.getChannel()), false); + .eq(!Objects.isNull(orgLoc.getChannel()), DeviceSite::getChannel, orgLoc.getChannel()), false); if (Objects.isNull(deviceSite)) { throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦紒锛�"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java index aca7d0c..b2962f7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java @@ -157,7 +157,7 @@ orderOutItemDto.setLocItem(locItem); List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>() - .eq(DeviceSite::getChannel, loc.getChannel()) + .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()) .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) ); diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java index 6cbcecc..6ec5761 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/GlobalConfigCode.java @@ -19,4 +19,6 @@ /**娉㈡鑷姩涓嬪彂浠诲姟*/ public final static String WAVE_AUTO_EXCE_TASK = "WaveAutoExce"; + public final static String AUTO_RUN_CHECK_ORDERS = "AUTO_RUN_CHECK_ORDERS"; + } diff --git a/rsf-server/src/main/resources/application-prod.yml b/rsf-server/src/main/resources/application-prod.yml index 1c91565..4dfcad8 100644 --- a/rsf-server/src/main/resources/application-prod.yml +++ b/rsf-server/src/main/resources/application-prod.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8085 servlet: context-path: /@pom.artifactId@ @@ -10,9 +10,9 @@ static-path-pattern: /** datasource: driver-class-name: com.mysql.jdbc.Driver - url: jdbc:mysql://192.168.4.24:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://10.10.10.200:3306/rsf?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root - password: 34821015 + password: xltys1995 type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 @@ -66,3 +66,25 @@ stock: flagAvailable: true + + + + #骞冲彴鎺ュ彛淇℃伅閰嶇疆(濡傦細ERP, QMS, WCS绛�) + platform: + #浼佷笟ERP骞冲彴 + erp: + #localhost + host: http://10.10.10.200 + #绔彛鍙� + port: 8085 + #鎺ュ搧閾炬帴鍓嶇紑 + pre-path: rsf-server + #鎺ュ彛鏄庣粏 + api: + #璐ㄦ涓婃姤鎺ュ彛 + notify-inspect: /report/inspect + rcs: + #閾炬帴 + host: http://10.10.10.200 + #绔彛 + port: 8081 diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml index 0c99aef..9188a6c 100644 --- a/rsf-server/src/main/resources/application.yml +++ b/rsf-server/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: dev + active: prod config: system-name: @pom.artifactId@ -- Gitblit v1.9.1