diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java index aa241c22..de79ac7e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppTaskController.java @@ -5,7 +5,9 @@ import java.util.*; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; import com.ruoyi.app.domain.*; +import com.ruoyi.app.domain.DTO.OtherStockInRequest; import com.ruoyi.app.service.*; import com.ruoyi.app.service.impl.AppPendingStorageServiceImpl; import com.ruoyi.common.annotation.Anonymous; @@ -14,6 +16,7 @@ import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.web.controller.section.EnhanceDataList; import com.ruoyi.web.domain.*; import io.swagger.annotations.ApiOperation; +import org.aspectj.weaver.loadtime.Aj; import org.springframework.beans.BeanUtils; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -22,14 +25,7 @@ import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -67,6 +63,9 @@ public class AppTaskController extends BaseController @Autowired private AppPendingStorageServiceImpl appPendingStorageServiceImpl; + @Autowired + private IAppVehicleService appVehicleService; + /** * 查询【请填写功能名称】列表 */ @@ -628,4 +627,52 @@ public class AppTaskController extends BaseController } } } + + @Anonymous + @PostMapping("/createInRequest") + public AjaxResult createInRequest(@RequestBody OtherStockInRequest otherStockInRequest) { + return _createInRequest(otherStockInRequest.getData(), otherStockInRequest.getVehicleNo()); + } + + private AjaxResult _createInRequest(List appPendingStorageRequestList, String vehicleNo) { + AppVehicle appVehicle = appVehicleService.selectAppVehicleByVehicleId(vehicleNo); + if (appVehicle != null && appVehicle.getVehicleStatus() == 1) { + logger.error("载具{}已经在库存中,请勿重复入库!", vehicleNo); + return error("该托盘已经在库存中,请勿重复入库!"); + } + AppTask taskQuery = new AppTask(); + taskQuery.setVehicleId(vehicleNo); + List sameTaskList = appTaskService.selectAppTaskList(taskQuery); + if (sameTaskList.size() > 0) { + logger.error("载具{}存在其他任务,请勿重复入库!", vehicleNo); + return error("该载具存在其他任务,请勿重复入库!"); + } + for (AppPendingStorageRequest appPendingStorageRequest : appPendingStorageRequestList) { + AppTask appTask = new AppTask(); + appTask.setTaskId("RK"+System.currentTimeMillis()); + appTask.setWcsTaskId("RK"+System.currentTimeMillis()); + appTask.setTaskType(1); + appTask.setTaskStatus(0); + appTask.setOrigin("B0-00-00-00"); + appTask.setTaskPriority(1); + appTask.setVehicleId(vehicleNo); + appTask.setGoodsId(appPendingStorageRequest.getGoodsId()); + appTask.setOpNum(BigDecimal.valueOf(1)); + appTask.setOpUser("user"); + String destination = appLocationService.sendLocation(); + appTask.setDestination(destination); + appTaskService.insertAppTask(appTask); + + AppLocation location_update = new AppLocation(); + location_update.setLocationStatus(1); + location_update.setLocationId(destination); + location_update.setUpdateTime(new Date()); + appLocationService.updateAppLocation(location_update); + } + appVehicle.setIsEmpty(0L); + appVehicle.setVehicleStatus(1L); + appVehicle.setLastInTime(new Date()); + appVehicleService.updateAppVehicle(appVehicle); + return AjaxResult.success("创建入库任务成功"); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppVehicleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppVehicleController.java index 5b1cfc9e..f894a548 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppVehicleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/AppVehicleController.java @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.app.domain.AppTask; import com.ruoyi.app.domain.AppVehicle; +import com.ruoyi.app.domain.DTO.AppAvailVehicle; import com.ruoyi.app.service.IAppVehicleService; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.web.controller.section.EnhanceDataList; @@ -106,4 +107,10 @@ public class AppVehicleController extends BaseController { return toAjax(appVehicleService.deleteAppVehicleByVehicleIds(vehicleIds)); } + + @GetMapping("listAvail") + @Anonymous + public List selectAppAvailVehicleList() { + return appVehicleService.selectAppAvailVehicleList(); + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index d844d163..0e4f6067 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -114,7 +114,7 @@ public class SecurityConfig requests.antMatchers("/login", "/register", "/captchaImage").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() - .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/app/pms/orderIn", "/app/pmsOrderOut/**", "/app/task/sendLocation", "/app/task/taskResult","/app/task/kk", "/system/storage/**", "/app/location/count", "/app/vehicle/**").permitAll() + .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/app/pms/orderIn", "/app/pmsOrderOut/**", "/app/task/sendLocation", "/app/task/taskResult","/app/task/createOutRequest", "/system/storage/**", "/app/location/count", "/app/vehicle/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppStock.java b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppStock.java index 27b7f6a6..d63b3895 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppStock.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppStock.java @@ -71,6 +71,8 @@ public class AppStock extends BaseEntity /** 库存状态 */ @Excel(name = "库存状态") + // 0: 未出库 + // 1: 出库中 private Long stockStatus; /** 入库用户 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppVehicle.java b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppVehicle.java index beffbf1d..ec8b75cf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppVehicle.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/domain/AppVehicle.java @@ -72,6 +72,12 @@ public class AppVehicle extends BaseEntity this.vehicleStatus = vehicleStatus; } + /** + * 0: 入库中 + * 1: 在库中 + * 2: 出库中 + * @return vehicleStatus + */ public Long getVehicleStatus() { return vehicleStatus; diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/domain/DAO/AppVehicleInfo.java b/ruoyi-system/src/main/java/com/ruoyi/app/domain/DAO/AppVehicleInfo.java new file mode 100644 index 00000000..da5e0839 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/app/domain/DAO/AppVehicleInfo.java @@ -0,0 +1,65 @@ +package com.ruoyi.app.domain.DAO; + +public class AppVehicleInfo { + + private String vehicleId; + + private int vehicleStatus; + + private String locationId; + + private int isEmpty; + + private int isLock; + + public String getVehicleId() { + return vehicleId; + } + + public void setVehicleId(String vehicleId) { + this.vehicleId = vehicleId; + } + + public int getVehicleStatus() { + return vehicleStatus; + } + + public void setVehicleStatus(int vehicleStatus) { + this.vehicleStatus = vehicleStatus; + } + + public String getLocationId() { + return locationId; + } + + public void setLocationId(String locationId) { + this.locationId = locationId; + } + + public int getIsEmpty() { + return isEmpty; + } + + public void setIsEmpty(int isEmpty) { + this.isEmpty = isEmpty; + } + + public int getIsLock() { + return isLock; + } + + public void setIsLock(int isLock) { + this.isLock = isLock; + } + + @Override + public String toString() { + return "AppVehicleInfo{" + + "vehicleId='" + vehicleId + '\'' + + ", vehicleStatus=" + vehicleStatus + + ", locationId='" + locationId + '\'' + + ", isEmpty=" + isEmpty + + ", isLock=" + isLock + + '}'; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/domain/DTO/AppAvailVehicle.java b/ruoyi-system/src/main/java/com/ruoyi/app/domain/DTO/AppAvailVehicle.java new file mode 100644 index 00000000..2cb8b9f6 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/app/domain/DTO/AppAvailVehicle.java @@ -0,0 +1,33 @@ +package com.ruoyi.app.domain.DTO; + +public class AppAvailVehicle { + private String vehicleId; + + private Integer vehicleStatus; + + private String locationId; + + public String getVehicleId() { + return vehicleId; + } + + public void setVehicleId(String vehicleId) { + this.vehicleId = vehicleId; + } + + public Integer getVehicleStatus() { + return vehicleStatus; + } + + public void setVehicleStatus(Integer vehicleStatus) { + this.vehicleStatus = vehicleStatus; + } + + public String getLocationId() { + return locationId; + } + + public void setLocationId(String locationId) { + this.locationId = locationId; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java index 6350847e..e0798cc9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/mapper/AppVehicleMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.app.mapper; import com.ruoyi.app.domain.AppVehicle; +import com.ruoyi.app.domain.DAO.AppVehicleInfo; import java.util.List; @@ -59,4 +60,11 @@ public interface AppVehicleMapper * @return 结果 */ public int deleteAppVehicleByVehicleIds(String[] vehicleIds); + + /** + * 获取vehicle列表 + * + * @return 结果 + */ + public List selectVehicleList(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java index f9adeb03..2e954301 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/IAppVehicleService.java @@ -1,6 +1,7 @@ package com.ruoyi.app.service; import com.ruoyi.app.domain.AppVehicle; +import com.ruoyi.app.domain.DTO.AppAvailVehicle; import java.util.List; @@ -59,4 +60,9 @@ public interface IAppVehicleService * @return 结果 */ public int deleteAppVehicleByVehicleId(String vehicleId); + + /** + * 获取状态为在库中的所有可用的载具 + */ + public List selectAppAvailVehicleList(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java index 7b02e9b5..76cf395b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/app/service/impl/AppVehicleServiceImpl.java @@ -1,10 +1,14 @@ package com.ruoyi.app.service.impl; +import java.util.ArrayList; import java.util.List; import com.ruoyi.app.domain.AppVehicle; +import com.ruoyi.app.domain.DAO.AppVehicleInfo; +import com.ruoyi.app.domain.DTO.AppAvailVehicle; import com.ruoyi.app.mapper.AppVehicleMapper; import com.ruoyi.app.service.IAppVehicleService; +import com.ruoyi.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -91,4 +95,27 @@ public class AppVehicleServiceImpl implements IAppVehicleService { return appVehicleMapper.deleteAppVehicleByVehicleId(vehicleId); } + + /** + * 获取状态为在库中的所有可用的载具 + * @return 结果 + */ + public List selectAppAvailVehicleList() { + List appVehicleInfoList = appVehicleMapper.selectVehicleList(); + List response = new ArrayList(); + for (AppVehicleInfo appVehicleInfo : appVehicleInfoList) { + // 1: 在库内 + System.out.println(appVehicleInfo); + if (appVehicleInfo != null && appVehicleInfo.getVehicleId() != null && !StringUtils.isEmpty(appVehicleInfo.getVehicleId())) { + if (appVehicleInfo.getVehicleStatus() == 1 && appVehicleInfo.getIsEmpty() != 0 && appVehicleInfo.getIsLock() == 0) { + AppAvailVehicle appAvailVehicle = new AppAvailVehicle(); + appAvailVehicle.setVehicleId(appVehicleInfo.getVehicleId()); + appAvailVehicle.setVehicleStatus(1); + appAvailVehicle.setLocationId(appVehicleInfo.getLocationId()); + response.add(appAvailVehicle); + } + } + } + return response; + } } diff --git a/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml b/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml index 97b0cf54..3534b43b 100644 --- a/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/app/AppVehicleMapper.xml @@ -16,6 +16,14 @@ + + + + + + + + select vehicle_id, vehicle_type, vehicle_status, location_id, is_empty, is_lock, last_in_time, last_in_user, remark from app_vehicle @@ -89,4 +97,8 @@ #{vehicleId} + + \ No newline at end of file