Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# 基础镜像
|
||||
FROM arm64v8/openjdk:8
|
||||
# author
|
||||
MAINTAINER manhuoda
|
||||
#指定东八区时区
|
||||
ENV TZ Asia/Shanghai
|
||||
#指定utf-8编码格
|
||||
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
|
||||
# VOLUME 指定了临时文件目录为/tmp。
|
||||
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
|
||||
VOLUME /tmp
|
||||
#将当前mhd_special_logistics.jar 复制到容器根目录下
|
||||
ADD mhd_wms.jar mhd_wms.jar
|
||||
#暴露容器端口 Docker镜像告知Docker宿主机应用监听了端口
|
||||
EXPOSE 8017
|
||||
# 运行jar包
|
||||
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms1000m", "-Xmx1500m","-jar","/mhd_wms.jar"]
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>mhd</artifactId>
|
||||
<groupId>com.mhd</groupId>
|
||||
<version>3.6.0</version>
|
||||
</parent>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd_wms</artifactId>
|
||||
|
||||
<name>mhd_wms</name>
|
||||
<description>mhd_wms 仓储</description>
|
||||
|
||||
<dependencies>
|
||||
<!--添加web依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<!--添加feign依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>bcpkix-jdk15on</artifactId>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
<artifactId>feign-httpclient</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-loadbalancer</artifactId>
|
||||
</dependency>
|
||||
<!--nacos 服务注册客户端依赖-->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
<!-- SpringCloud Alibaba Nacos Config -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
<!-- Sentinel⽀持采⽤ Nacos 作为规则配置数据源,引⼊该适配依赖 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.csp</groupId>
|
||||
<artifactId>sentinel-datasource-nacos</artifactId>
|
||||
</dependency>
|
||||
<!--sentinel 核⼼环境 依赖-->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||
</dependency>
|
||||
<!-- Jackson -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Alibaba Fastjson -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.fastjson2</groupId>
|
||||
<artifactId>fastjson2</artifactId>
|
||||
</dependency>
|
||||
<!-- Mhd Common Core-->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd-common-core</artifactId>
|
||||
</dependency>
|
||||
<!-- Mhd Common Log -->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd-common-log</artifactId>
|
||||
</dependency>
|
||||
<!-- Mhd Common Redis-->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd-common-redis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
<!--import mybatis plus 它会自动引入mybatis及mybatis spring切勿重复引用以免冲突-->
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.3.2</version>
|
||||
</dependency>
|
||||
<!--添加druid连接池 依赖 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.2.11</version>
|
||||
</dependency>
|
||||
<!--链路追踪-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-sleuth</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Mhd Common Security-->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Mhd Api System-->
|
||||
<dependency>
|
||||
<groupId>com.mhd</groupId>
|
||||
<artifactId>mhd-api-system</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>2.1.1.RELEASE</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<includeSystemScope>true</includeSystemScope>
|
||||
<excludes>
|
||||
<exclude>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>mhd_wms</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.spotify</groupId>
|
||||
<artifactId>dockerfile-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.mhd.wms;
|
||||
|
||||
import com.alicp.jetcache.anno.config.EnableMethodCache;
|
||||
import com.mhd.common.security.annotation.EnableRyFeignClients;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableRyFeignClients
|
||||
@EnableDiscoveryClient
|
||||
@MapperScan("com.mhd.wms.domain.**.mapper")
|
||||
@EnableMethodCache(basePackages = "com.mhd.platform.domain.**.cache")
|
||||
public class MhdWmsApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MhdWmsApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package com.mhd.wms.application.service.commonSettings;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
|
||||
import com.mhd.wms.domain.commonSettings.service.CommonSettingsDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用设置ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class CommonSettingsApplicationService {
|
||||
@Autowired
|
||||
private CommonSettingsDomainService commonSettingsDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询常用设置列表
|
||||
*/
|
||||
|
||||
public List<CommonSettingsPO> queryList(CommonSettingsDO commonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return commonSettingsDomainService.queryList(commonSettingsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增常用设置
|
||||
*/
|
||||
public Boolean insert(CommonSettingsDO commonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return commonSettingsDomainService.insert(commonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改常用设置
|
||||
*/
|
||||
public Boolean update(CommonSettingsDO commonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
commonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return commonSettingsDomainService.update(commonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除常用设置
|
||||
*/
|
||||
public boolean delete(Long[] commonSettingsIds) {
|
||||
return commonSettingsDomainService.delete(commonSettingsIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取常用设置详细信息
|
||||
*/
|
||||
public CommonSettingsPO getInfo(Long commonSettingsId)
|
||||
{
|
||||
return commonSettingsDomainService.getInfo(commonSettingsId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.containerUsageRecord;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.service.ContainerUsageRecordDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 容器使用记录ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ContainerUsageRecordApplicationService {
|
||||
@Autowired
|
||||
private ContainerUsageRecordDomainService containerUsageRecordDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询容器使用记录列表
|
||||
*/
|
||||
|
||||
public List<ContainerUsageRecordPO> queryList(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
containerUsageRecordDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return containerUsageRecordDomainService.queryList(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增容器使用记录
|
||||
*/
|
||||
public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
|
||||
return containerUsageRecordDomainService.insert(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改容器使用记录
|
||||
*/
|
||||
public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
return containerUsageRecordDomainService.update(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除容器使用记录
|
||||
*/
|
||||
public boolean delete(String[] ids) {
|
||||
return containerUsageRecordDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取容器使用记录详细信息
|
||||
*/
|
||||
public ContainerUsageRecordPO getInfo(String id)
|
||||
{
|
||||
return containerUsageRecordDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
package com.mhd.wms.application.service.deliveTask;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
import com.mhd.wms.domain.deliveTask.service.DeliveTaskDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 下发任务ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DeliveTaskApplicationService {
|
||||
@Autowired
|
||||
private DeliveTaskDomainService deliveTaskDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询下发任务列表
|
||||
*/
|
||||
|
||||
public List<DeliveTaskPO> queryList(DeliveTaskDO deliveTaskDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return deliveTaskDomainService.queryList(deliveTaskDO);
|
||||
}
|
||||
|
||||
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
deliveTaskDO.setOperatorsBy(loginUser.getUserid());
|
||||
}
|
||||
}
|
||||
return deliveTaskDomainService.queryListApp(deliveTaskDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量 新增下发任务
|
||||
*/
|
||||
public Boolean batchInsert(List<DeliveTaskDO> deliveTaskDOList) {
|
||||
|
||||
return deliveTaskDomainService.batchInsert(deliveTaskDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除下发任务
|
||||
*/
|
||||
public boolean delete(Long[] deliverTaskIds) {
|
||||
return deliveTaskDomainService.delete(deliverTaskIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下发任务详细信息
|
||||
*/
|
||||
public DeliveTaskPO getInfo(Long deliverTaskId)
|
||||
{
|
||||
return deliveTaskDomainService.getInfo(deliverTaskId);
|
||||
}
|
||||
/**
|
||||
* 任务下发接收操作
|
||||
*/
|
||||
public int receive(Long deliverTaskId)
|
||||
{
|
||||
return deliveTaskDomainService.receive(deliverTaskId);
|
||||
}
|
||||
/**
|
||||
* 任务下发接收操作
|
||||
*/
|
||||
public int refuse(Long deliverTaskId)
|
||||
{
|
||||
return deliveTaskDomainService.refuse(deliverTaskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 工作台查询
|
||||
*/
|
||||
public DeliveTaskSumPO workbenchQuery()
|
||||
{
|
||||
return deliveTaskDomainService.workbenchQuery();
|
||||
}
|
||||
|
||||
public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
deliveTaskDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
deliveTaskDO.setOperatorsBy(loginUser.getUserid());
|
||||
}
|
||||
}
|
||||
return deliveTaskDomainService.querySum(deliveTaskDO);
|
||||
}
|
||||
|
||||
}
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package com.mhd.wms.application.service.differentManage;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
|
||||
import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
|
||||
import com.mhd.wms.domain.differentManage.service.DifferentManageDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 差异单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DifferentManageApplicationService {
|
||||
@Autowired
|
||||
private DifferentManageDomainService differentManageDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询差异单列表
|
||||
*/
|
||||
|
||||
public List<DifferentManagePO> queryList(DifferentManageDO differentManageDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
differentManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
differentManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return differentManageDomainService.queryList(differentManageDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增差异单
|
||||
*/
|
||||
public Boolean insert(DifferentManageDO differentManageDO) {
|
||||
|
||||
return differentManageDomainService.insert(differentManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改差异单
|
||||
*/
|
||||
public Boolean update(DifferentManageDO differentManageDO) {
|
||||
return differentManageDomainService.update(differentManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除差异单
|
||||
*/
|
||||
public boolean delete(Long[] differentManageIds) {
|
||||
return differentManageDomainService.delete(differentManageIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取差异单详细信息
|
||||
*/
|
||||
public DifferentManagePO getInfo(Long differentManageId) {
|
||||
return differentManageDomainService.getInfo(differentManageId);
|
||||
}
|
||||
|
||||
public Boolean resetDifferent(DifferentManageDO differentManageDO){
|
||||
return differentManageDomainService.resetDifferent(differentManageDO);
|
||||
}
|
||||
public Boolean differentRollback(DifferentManageDO differentManageDO){
|
||||
return differentManageDomainService.differentRollback(differentManageDO);
|
||||
}
|
||||
|
||||
public DifferentManagePO getDifferentManageDO(Long differentManageId){
|
||||
return differentManageDomainService.getDifferentManageDO(differentManageId);
|
||||
}
|
||||
|
||||
}
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
package com.mhd.wms.application.service.handoverTaskOrder;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.DateUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.domain.PlatformFeignPO;
|
||||
import com.mhd.system.api.domain.PlatformUseTimeFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.service.HandoverTaskOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交接作业单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class HandoverTaskOrderApplicationService {
|
||||
@Autowired
|
||||
private HandoverTaskOrderDomainService handoverTaskOrderDomainService;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询交接作业单列表
|
||||
*/
|
||||
|
||||
public List<HandoverTaskOrderPO> queryList(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
handoverTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
handoverTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return handoverTaskOrderDomainService.queryList(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增交接作业单
|
||||
*/
|
||||
public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
|
||||
return handoverTaskOrderDomainService.insert(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改交接作业单
|
||||
*/
|
||||
public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
return handoverTaskOrderDomainService.update(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除交接作业单
|
||||
*/
|
||||
public boolean delete(Long[] outTaskOrderIds) {
|
||||
return handoverTaskOrderDomainService.delete(outTaskOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取交接作业单详细信息
|
||||
*/
|
||||
public HandoverTaskOrderPO getInfo(Long outTaskOrderId)
|
||||
{
|
||||
return handoverTaskOrderDomainService.getInfo(outTaskOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配月台
|
||||
*/
|
||||
public Boolean allocationPlatform(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
//封装月台信息
|
||||
platformParam(handoverTaskOrderDO);
|
||||
return handoverTaskOrderDomainService.allocationPlatform(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 释放月台
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 15:19
|
||||
* @param handoverTaskOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean releasePlatform(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||
return handoverTaskOrderDomainService.releasePlatform(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 完成交接
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/31 14:23
|
||||
* @param handoverTaskOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean completeHandover(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||
return handoverTaskOrderDomainService.completeHandover(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description 封装月台信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/13 10:45
|
||||
* @param handoverTaskOrderDO
|
||||
*/
|
||||
private void platformParam(HandoverTaskOrderDO handoverTaskOrderDO){
|
||||
//封装月台信息
|
||||
AjaxResult ajaxResult = systemServiceFeign.getPlatformInfoByPlatformId(handoverTaskOrderDO.getPlatformId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取月台信息失败");
|
||||
}
|
||||
PlatformFeignPO platformFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), PlatformFeignPO.class);
|
||||
handoverTaskOrderDO.setPlatformCode(platformFeignPO.getPlatformCode());
|
||||
handoverTaskOrderDO.setPlatformName(platformFeignPO.getPlatformName());
|
||||
|
||||
//封装月台使用时间信息
|
||||
AjaxResult ajaxResult2 = systemServiceFeign.getPlatformUseTimeInfoByPlatformUseTimeId(handoverTaskOrderDO.getPlatformId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult2.get("code")))){
|
||||
throw new ServiceException("获取月台使用时间信息失败");
|
||||
}
|
||||
PlatformUseTimeFeignPO platformUseTimeFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult2.get("data")), PlatformUseTimeFeignPO.class);
|
||||
try {
|
||||
handoverTaskOrderDO.setPlatformUseStartTime(DateUtils.parseDate(platformUseTimeFeignPO.getStartTime(), "HH:mm"));
|
||||
handoverTaskOrderDO.setPlatformUseEndTime(DateUtils.parseDate(platformUseTimeFeignPO.getEndTime(), "HH:mm"));
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.mhd.wms.application.service.inMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
|
||||
import com.mhd.wms.domain.inMaterialDetail.service.InMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private InMaterialDetailDomainService inMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料明细列表
|
||||
*/
|
||||
|
||||
public List<InMaterialDetailPO> queryList(InMaterialDetailDO inMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inMaterialDetailDomainService.queryList(inMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料明细
|
||||
*/
|
||||
public Boolean insert(InMaterialDetailDO inMaterialDetailDO) {
|
||||
|
||||
return inMaterialDetailDomainService.insert(inMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料明细
|
||||
*/
|
||||
public Boolean update(InMaterialDetailDO inMaterialDetailDO) {
|
||||
return inMaterialDetailDomainService.update(inMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料明细
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailIds) {
|
||||
return inMaterialDetailDomainService.delete(materialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料明细详细信息
|
||||
*/
|
||||
public InMaterialDetailPO getInfo(Long materialDetailId)
|
||||
{
|
||||
return inMaterialDetailDomainService.getInfo(materialDetailId);
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.inMaterialDetailSerialNumber;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.po.InMaterialDetailSerialNumberPO;
|
||||
import com.mhd.wms.domain.inMaterialDetailSerialNumber.repository.todo.InMaterialDetailSerialNumberDO;
|
||||
import com.mhd.wms.domain.inMaterialDetailSerialNumber.service.InMaterialDetailSerialNumberDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料明细序列号ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InMaterialDetailSerialNumberApplicationService {
|
||||
@Autowired
|
||||
private InMaterialDetailSerialNumberDomainService inMaterialDetailSerialNumberDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料明细序列号列表
|
||||
*/
|
||||
|
||||
public List<InMaterialDetailSerialNumberPO> queryList(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
InMaterialDetailSerialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inMaterialDetailSerialNumberDomainService.queryList(InMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料明细序列号
|
||||
*/
|
||||
public Boolean insert(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
|
||||
|
||||
return inMaterialDetailSerialNumberDomainService.insert(InMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料明细序列号
|
||||
*/
|
||||
public Boolean update(InMaterialDetailSerialNumberDO InMaterialDetailSerialNumberDO) {
|
||||
return inMaterialDetailSerialNumberDomainService.update(InMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料明细序列号
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailSerialNumberIds) {
|
||||
return inMaterialDetailSerialNumberDomainService.delete(materialDetailSerialNumberIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料明细序列号详细信息
|
||||
*/
|
||||
public InMaterialDetailSerialNumberPO getInfo(Long materialDetailSerialNumberId)
|
||||
{
|
||||
return inMaterialDetailSerialNumberDomainService.getInfo(materialDetailSerialNumberId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.wms.application.service.inOrderAbnormal;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inOrderAbnormal.repository.po.InOrderAbnormalPO;
|
||||
import com.mhd.wms.domain.inOrderAbnormal.repository.todo.InOrderAbnormalDO;
|
||||
import com.mhd.wms.domain.inOrderAbnormal.service.InOrderAbnormalDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 入库异常单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InOrderAbnormalApplicationService {
|
||||
@Autowired
|
||||
private InOrderAbnormalDomainService inOrderAbnormalDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询入库异常单列表
|
||||
*/
|
||||
|
||||
public List<InOrderAbnormalPO> queryList(InOrderAbnormalDO inOrderAbnormalDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
inOrderAbnormalDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inOrderAbnormalDomainService.queryList(inOrderAbnormalDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增入库异常单
|
||||
*/
|
||||
public Boolean insert(InOrderAbnormalDO inOrderAbnormalDO) {
|
||||
|
||||
return inOrderAbnormalDomainService.insert(inOrderAbnormalDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入库异常单
|
||||
*/
|
||||
public Boolean update(InOrderAbnormalDO inOrderAbnormalDO) {
|
||||
return inOrderAbnormalDomainService.update(inOrderAbnormalDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除入库异常单
|
||||
*/
|
||||
public boolean delete(Long[] inOrderAbnormalIds) {
|
||||
return inOrderAbnormalDomainService.delete(inOrderAbnormalIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入库异常单详细信息
|
||||
*/
|
||||
public InOrderAbnormalPO getInfo(Long inOrderAbnormalId)
|
||||
{
|
||||
return inOrderAbnormalDomainService.getInfo(inOrderAbnormalId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
package com.mhd.wms.application.service.inventoryAdjustmentRecord;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.po.InventoryAdjustmentRecordPO;
|
||||
import com.mhd.wms.domain.inventoryAdjustmentRecord.repository.todo.InventoryAdjustmentRecordDO;
|
||||
import com.mhd.wms.domain.inventoryAdjustmentRecord.service.InventoryAdjustmentRecordDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存调整记录ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-17
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryAdjustmentRecordApplicationService {
|
||||
@Autowired
|
||||
private InventoryAdjustmentRecordDomainService inventoryAdjustmentRecordDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存调整记录列表
|
||||
*/
|
||||
|
||||
public List<InventoryAdjustmentRecordPO> queryList(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryAdjustmentRecordDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
inventoryAdjustmentRecordDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryAdjustmentRecordDomainService.queryList(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存调整记录
|
||||
*/
|
||||
public Boolean insert(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
|
||||
return inventoryAdjustmentRecordDomainService.insert(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存调整记录
|
||||
*/
|
||||
public Boolean update(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
return inventoryAdjustmentRecordDomainService.update(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存调整记录
|
||||
*/
|
||||
public boolean delete(Long[] inventoryAdjustmentIds) {
|
||||
return inventoryAdjustmentRecordDomainService.delete(inventoryAdjustmentIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存调整记录详细信息
|
||||
*/
|
||||
public InventoryAdjustmentRecordPO getInfo(Long inventoryAdjustmentId)
|
||||
{
|
||||
return inventoryAdjustmentRecordDomainService.getInfo(inventoryAdjustmentId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:库存调整
|
||||
* @param inventoryAdjustmentRecordDO
|
||||
* @return: java.lang.Boolean
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-18 9:29:40
|
||||
*/
|
||||
public Boolean inventoryAdjust(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
return inventoryAdjustmentRecordDomainService.inventoryAdjust(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:库存冻结
|
||||
* @param inventoryAdjustmentRecordDO
|
||||
* @return: java.lang.Boolean
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-18 14:58:15
|
||||
*/
|
||||
public Boolean inventoryFrozen(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
return inventoryAdjustmentRecordDomainService.inventoryFrozen(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
|
||||
public Boolean inventoryFrozenForAll(InventoryAdjustmentRecordDO inventoryAdjustmentRecordDO) {
|
||||
return inventoryAdjustmentRecordDomainService.inventoryFrozenForAll(inventoryAdjustmentRecordDO);
|
||||
}
|
||||
}
|
||||
+244
@@ -0,0 +1,244 @@
|
||||
package com.mhd.wms.application.service.inventoryAllocationRule;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.github.pagehelper.util.StringUtil;
|
||||
import com.mhd.common.core.domain.po.SysDictDataVo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryAllocationRule.repository.po.InventoryAllocationRulePO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRule.repository.todo.InventoryAllocationRuleDO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRule.service.InventoryAllocationRuleDomainService;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.po.InventoryAllocationRuleDetailPO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.todo.InventoryAllocationRuleDetailDO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.service.InventoryAllocationRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 库存分配规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryAllocationRuleApplicationService {
|
||||
@Autowired
|
||||
private InventoryAllocationRuleDomainService inventoryAllocationRuleDomainService;
|
||||
|
||||
@Resource
|
||||
private InventoryAllocationRuleDetailDomainService inventoryAllocationRuleDetailDomainService;
|
||||
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存分配规则列表
|
||||
*/
|
||||
|
||||
public List<InventoryAllocationRulePO> queryList(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryAllocationRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inventoryAllocationRuleDomainService.queryList(inventoryAllocationRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存分配规则
|
||||
*/
|
||||
|
||||
@Transactional
|
||||
public Boolean insert(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryAllocationRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
Long id = inventoryAllocationRuleDomainService.insertToId(inventoryAllocationRuleDO);
|
||||
//根据ID查询所有的库存分配规则明细
|
||||
Long[] ids = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleId(id);
|
||||
//删除当前的库存分配规则明细信息
|
||||
inventoryAllocationRuleDetailDomainService.delete(ids);
|
||||
//批量新增所有的库存分配规则明细
|
||||
List<InventoryAllocationRuleDetailDO> inventoryAllocationRuleDetailDOS = inventoryAllocationRuleDO.getInventoryAllocationRuleDetailDOS();
|
||||
inventoryAllocationRuleDetailDOS.stream().forEach(inventoryAllocationRuleDetailDO -> {
|
||||
//库位种类 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationKindId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位种类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationKindId())) {
|
||||
throw new ServiceException("库位种类未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setLocationKind(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationKindId()));
|
||||
}
|
||||
//库位种类 end
|
||||
//库位分类 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationTypeId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setLocationType(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationTypeId()));
|
||||
}
|
||||
//库位分类 end
|
||||
//混放策略 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMixingSlgId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.CONFUSION_STRATEGY.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMixingSlgId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setMixingSlg(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMixingSlgId()));
|
||||
}
|
||||
//混放策略 end
|
||||
//物料状态 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMaterialStatusId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMaterialStatusId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setMaterialStatus(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMaterialStatusId()));
|
||||
}
|
||||
//物料状态 end
|
||||
inventoryAllocationRuleDetailDO.setInventoryAllocationRuleId(id);
|
||||
|
||||
});
|
||||
return inventoryAllocationRuleDetailDomainService.batchInsert(inventoryAllocationRuleDetailDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存分配规则
|
||||
*/
|
||||
public Boolean update(InventoryAllocationRuleDO inventoryAllocationRuleDO) {
|
||||
inventoryAllocationRuleDomainService.update(inventoryAllocationRuleDO);
|
||||
//根据ID查询所有的库存分配规则明细
|
||||
Long[] ids = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleId(inventoryAllocationRuleDO.getId());
|
||||
//删除当前的库存分配规则明细信息
|
||||
inventoryAllocationRuleDetailDomainService.delete(ids);
|
||||
//批量新增所有的库存分配规则明细
|
||||
List<InventoryAllocationRuleDetailDO> inventoryAllocationRuleDetailDOS = inventoryAllocationRuleDO.getInventoryAllocationRuleDetailDOS();
|
||||
inventoryAllocationRuleDetailDOS.stream().forEach(inventoryAllocationRuleDetailDO -> {
|
||||
//库位种类 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationKindId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位种类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationKindId())) {
|
||||
throw new ServiceException("库位种类未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setLocationKind(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationKindId()));
|
||||
}
|
||||
//库位种类 end
|
||||
//库位分类 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getLocationTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getLocationTypeId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setLocationType(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getLocationTypeId()));
|
||||
}
|
||||
//库位分类 end
|
||||
//混放策略 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMixingSlgId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.CONFUSION_STRATEGY.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMixingSlgId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setMixingSlg(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMixingSlgId()));
|
||||
}
|
||||
//混放策略 end
|
||||
//物料状态 start
|
||||
if(StringUtil.isNotEmpty(inventoryAllocationRuleDetailDO.getMaterialStatusId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(inventoryAllocationRuleDetailDO.getMaterialStatusId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setMaterialStatus(transportTypeDictMap.get(inventoryAllocationRuleDetailDO.getMaterialStatusId()));
|
||||
}
|
||||
inventoryAllocationRuleDetailDO.setInventoryAllocationRuleId(inventoryAllocationRuleDO.getId());
|
||||
});
|
||||
return inventoryAllocationRuleDetailDomainService.batchInsert(inventoryAllocationRuleDetailDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存分配规则
|
||||
*/
|
||||
@Transactional
|
||||
public boolean delete(Long[] ids) {
|
||||
inventoryAllocationRuleDomainService.delete(ids);
|
||||
//根据库存分配规则ID查询所有的库存分配规则明细信息
|
||||
Long[] inventoryAllocationRuleDetailIds = inventoryAllocationRuleDetailDomainService.selectIdsByInventoryAllocationRuleIds(ids);
|
||||
return inventoryAllocationRuleDetailDomainService.delete(inventoryAllocationRuleDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存分配规则详细信息
|
||||
*/
|
||||
public InventoryAllocationRulePO getInfo(Long id)
|
||||
{
|
||||
InventoryAllocationRulePO inventoryAllocationRulePO = inventoryAllocationRuleDomainService.getInfo(id);
|
||||
//根据库存分配ID查询库存分配明细信息
|
||||
List<InventoryAllocationRuleDetailPO> inventoryAllocationRuleDetailPOS =
|
||||
inventoryAllocationRuleDetailDomainService.selectListByInventoryAllocationRuleId(id);
|
||||
|
||||
inventoryAllocationRulePO.setInventoryAllocationRuleDetailList(inventoryAllocationRuleDetailPOS);
|
||||
return inventoryAllocationRulePO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.inventoryAllocationRuleDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.po.InventoryAllocationRuleDetailPO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.repository.todo.InventoryAllocationRuleDetailDO;
|
||||
import com.mhd.wms.domain.inventoryAllocationRuleDetail.service.InventoryAllocationRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存规则分配明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryAllocationRuleDetailApplicationService {
|
||||
@Autowired
|
||||
private InventoryAllocationRuleDetailDomainService inventoryAllocationRuleDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存规则分配明细列表
|
||||
*/
|
||||
|
||||
public List<InventoryAllocationRuleDetailPO> queryList(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryAllocationRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inventoryAllocationRuleDetailDomainService.queryList(inventoryAllocationRuleDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存规则分配明细
|
||||
*/
|
||||
public Boolean insert(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
|
||||
|
||||
return inventoryAllocationRuleDetailDomainService.insert(inventoryAllocationRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存规则分配明细
|
||||
*/
|
||||
public Boolean update(InventoryAllocationRuleDetailDO inventoryAllocationRuleDetailDO) {
|
||||
return inventoryAllocationRuleDetailDomainService.update(inventoryAllocationRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存规则分配明细
|
||||
*/
|
||||
public boolean delete(Long[] ids) {
|
||||
return inventoryAllocationRuleDetailDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存规则分配明细详细信息
|
||||
*/
|
||||
public InventoryAllocationRuleDetailPO getInfo(Long id)
|
||||
{
|
||||
return inventoryAllocationRuleDetailDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.mhd.wms.application.service.inventoryStandingDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryStandingDetail.repository.po.InventoryStandingDetailPO;
|
||||
import com.mhd.wms.domain.inventoryStandingDetail.repository.todo.InventoryStandingDetailDO;
|
||||
import com.mhd.wms.domain.inventoryStandingDetail.service.InventoryStandingDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存台账追溯详情ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-13
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryStandingDetailApplicationService {
|
||||
@Autowired
|
||||
private InventoryStandingDetailDomainService inventoryStandingDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存台账追溯详情列表
|
||||
*/
|
||||
|
||||
public List<InventoryStandingDetailPO> queryList(InventoryStandingDetailDO inventoryStandingDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryStandingDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
inventoryStandingDetailDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryStandingDetailDomainService.queryList(inventoryStandingDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存台账追溯详情
|
||||
*/
|
||||
public boolean delete(Long[] inventoryStandingDetailIds) {
|
||||
return inventoryStandingDetailDomainService.delete(inventoryStandingDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存台账追溯详情详细信息
|
||||
*/
|
||||
public InventoryStandingDetailPO getInfo(Long inventoryStandingDetailId)
|
||||
{
|
||||
return inventoryStandingDetailDomainService.getInfo(inventoryStandingDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
package com.mhd.wms.application.service.inventoryStandingReport;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryStandingReport.repository.po.InventoryStandingReportPO;
|
||||
import com.mhd.wms.domain.inventoryStandingReport.repository.todo.InventoryStandingReportDO;
|
||||
import com.mhd.wms.domain.inventoryStandingReport.service.InventoryStandingReportDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存台账报ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-12
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryStandingReportApplicationService {
|
||||
@Autowired
|
||||
private InventoryStandingReportDomainService inventoryStandingReportDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存台账报列表
|
||||
*/
|
||||
|
||||
public List<InventoryStandingReportPO> queryList(InventoryStandingReportDO inventoryStandingReportDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryStandingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
inventoryStandingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryStandingReportDomainService.queryList(inventoryStandingReportDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存台账报
|
||||
*/
|
||||
public Boolean insert(InventoryStandingReportDO inventoryStandingReportDO) {
|
||||
|
||||
return inventoryStandingReportDomainService.insert(inventoryStandingReportDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存台账报
|
||||
*/
|
||||
public Boolean update(InventoryStandingReportDO inventoryStandingReportDO) {
|
||||
return inventoryStandingReportDomainService.update(inventoryStandingReportDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存台账报
|
||||
*/
|
||||
public boolean delete(Long[] inventoryStandingIds) {
|
||||
return inventoryStandingReportDomainService.delete(inventoryStandingIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存台账报详细信息
|
||||
*/
|
||||
public InventoryStandingReportPO getInfo(Long inventoryStandingId)
|
||||
{
|
||||
return inventoryStandingReportDomainService.getInfo(inventoryStandingId);
|
||||
}
|
||||
|
||||
|
||||
public InventoryStandingReportPO getInventoryStandingInfo(InventoryStandingReportDO inventoryStandingReportDO)
|
||||
{
|
||||
return inventoryStandingReportDomainService.getInventoryStandingInfo(inventoryStandingReportDO);
|
||||
}
|
||||
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package com.mhd.wms.application.service.inventoryTurnoverRule;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRule.repository.po.InventoryTurnoverRulePO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRule.repository.todo.InventoryTurnoverRuleDO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRule.service.InventoryTurnoverRuleDomainService;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.po.InventoryTurnoverRuleDetailPO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.todo.InventoryTurnoverRuleDetailDO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.service.InventoryTurnoverRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存周转规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryTurnoverRuleApplicationService {
|
||||
@Autowired
|
||||
private InventoryTurnoverRuleDomainService inventoryTurnoverRuleDomainService;
|
||||
|
||||
|
||||
@Resource
|
||||
private InventoryTurnoverRuleDetailDomainService inventoryTurnoverRuleDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存周转规则列表
|
||||
*/
|
||||
|
||||
public List<InventoryTurnoverRulePO> queryList(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryTurnoverRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inventoryTurnoverRuleDomainService.queryList(inventoryTurnoverRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存周转规则
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean insert(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryTurnoverRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
Long inventoryTurnoverRuleId = inventoryTurnoverRuleDomainService.insertData(inventoryTurnoverRuleDO);
|
||||
//根据周转规则明细ID查询出原有的数据
|
||||
Long[] ids = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleId(inventoryTurnoverRuleId);
|
||||
inventoryTurnoverRuleDetailDomainService.delete(ids);//根据周转规则明细ID删除旧数据
|
||||
List<InventoryTurnoverRuleDetailDO> inventoryTurnoverRuleDetailDOS = inventoryTurnoverRuleDO.getInventoryTurnoverRuleDetailDOS();
|
||||
inventoryTurnoverRuleDetailDOS.stream().forEach(inventoryTurnoverRuleDetailDO -> {
|
||||
inventoryTurnoverRuleDetailDO.setInventoryTurnoverRuleId(inventoryTurnoverRuleId);
|
||||
});
|
||||
return inventoryTurnoverRuleDetailDomainService.batchInsert(inventoryTurnoverRuleDetailDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存周转规则
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean update(InventoryTurnoverRuleDO inventoryTurnoverRuleDO) {
|
||||
inventoryTurnoverRuleDomainService.update(inventoryTurnoverRuleDO);
|
||||
//根据周转规则明细ID查询出原有的数据
|
||||
Long[] ids = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleId(inventoryTurnoverRuleDO.getId());
|
||||
inventoryTurnoverRuleDetailDomainService.delete(ids);//根据周转规则明细ID删除旧数据
|
||||
List<InventoryTurnoverRuleDetailDO> inventoryTurnoverRuleDetailDOS = inventoryTurnoverRuleDO.getInventoryTurnoverRuleDetailDOS();
|
||||
inventoryTurnoverRuleDetailDOS.stream().forEach(inventoryTurnoverRuleDetailDO -> {
|
||||
inventoryTurnoverRuleDetailDO.setInventoryTurnoverRuleId(inventoryTurnoverRuleDO.getId());
|
||||
});
|
||||
return inventoryTurnoverRuleDetailDomainService.batchInsert(inventoryTurnoverRuleDetailDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存周转规则
|
||||
*/
|
||||
@Transactional
|
||||
public boolean delete(Long[] ids) {
|
||||
inventoryTurnoverRuleDomainService.delete(ids);
|
||||
//根据周转规则明细ID查询出原有的数据
|
||||
Long[] inventoryTurnoverRuleIds = inventoryTurnoverRuleDetailDomainService.selectIdsByInventoryTurnoverRuleIds(ids);
|
||||
return inventoryTurnoverRuleDetailDomainService.delete(inventoryTurnoverRuleIds);//根据周转规则明细ID删除旧数据;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存周转规则详细信息
|
||||
*/
|
||||
public InventoryTurnoverRulePO getInfo(Long id)
|
||||
{
|
||||
|
||||
InventoryTurnoverRulePO inventoryTurnoverRulePO = inventoryTurnoverRuleDomainService.getInfo(id);
|
||||
//根据周转规则ID获取明细信息
|
||||
List<InventoryTurnoverRuleDetailPO> inventoryTurnoverRuleDetailPOList =
|
||||
inventoryTurnoverRuleDetailDomainService.selectListByInventoryTurnoverRuleId(id);
|
||||
|
||||
inventoryTurnoverRulePO.setInventoryTurnoverRuleDetailList(inventoryTurnoverRuleDetailPOList);
|
||||
|
||||
return inventoryTurnoverRulePO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.inventoryTurnoverRuleDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.po.InventoryTurnoverRuleDetailPO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.repository.todo.InventoryTurnoverRuleDetailDO;
|
||||
import com.mhd.wms.domain.inventoryTurnoverRuleDetail.service.InventoryTurnoverRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存周转规则明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryTurnoverRuleDetailApplicationService {
|
||||
@Autowired
|
||||
private InventoryTurnoverRuleDetailDomainService inventoryTurnoverRuleDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询库存周转规则明细列表
|
||||
*/
|
||||
|
||||
public List<InventoryTurnoverRuleDetailPO> queryList(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryTurnoverRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return inventoryTurnoverRuleDetailDomainService.queryList(inventoryTurnoverRuleDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存周转规则明细
|
||||
*/
|
||||
public Boolean insert(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
|
||||
|
||||
return inventoryTurnoverRuleDetailDomainService.insert(inventoryTurnoverRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存周转规则明细
|
||||
*/
|
||||
public Boolean update(InventoryTurnoverRuleDetailDO inventoryTurnoverRuleDetailDO) {
|
||||
return inventoryTurnoverRuleDetailDomainService.update(inventoryTurnoverRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存周转规则明细
|
||||
*/
|
||||
public boolean delete(Long[] ids) {
|
||||
return inventoryTurnoverRuleDetailDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存周转规则明细详细信息
|
||||
*/
|
||||
public InventoryTurnoverRuleDetailPO getInfo(Long id)
|
||||
{
|
||||
return inventoryTurnoverRuleDetailDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+199
@@ -0,0 +1,199 @@
|
||||
package com.mhd.wms.application.service.inventoryWarningAnalyze;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mhd.common.core.utils.OrderSequence;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryWarningAnalyze.entity.InventoryWarningAnalyze;
|
||||
import com.mhd.wms.domain.inventoryWarningAnalyze.repository.po.InventoryWarningAnalyzePO;
|
||||
import com.mhd.wms.domain.inventoryWarningAnalyze.repository.todo.InventoryWarningAnalyzeDO;
|
||||
import com.mhd.wms.domain.inventoryWarningAnalyze.service.InventoryWarningAnalyzeDomainService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
|
||||
import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
|
||||
import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 库存预警分析ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-24
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InventoryWarningAnalyzeApplicationService {
|
||||
@Autowired
|
||||
private InventoryWarningAnalyzeDomainService inventoryWarningAnalyzeDomainService;
|
||||
|
||||
@Resource
|
||||
private MaterialInventoryDomainService materialInventoryDomainService;
|
||||
|
||||
@Resource
|
||||
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
||||
|
||||
@Resource
|
||||
private MaterialBaseInfoDomainService materialBaseInfoDomainService;
|
||||
|
||||
/**
|
||||
* 分页查询库存预警分析列表
|
||||
*/
|
||||
|
||||
public List<InventoryWarningAnalyzePO> queryList(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
inventoryWarningAnalyzeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
inventoryWarningAnalyzeDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
List<InventoryWarningAnalyzePO> inventoryWarningAnalyzePOS = inventoryWarningAnalyzeDomainService.queryList(inventoryWarningAnalyzeDO);
|
||||
for (InventoryWarningAnalyzePO inventoryWarningAnalyzePO : inventoryWarningAnalyzePOS) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getWarehouseName())) {
|
||||
sb.append(inventoryWarningAnalyzePO.getWarehouseName());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getStorageName())) {
|
||||
sb.append("-").append(inventoryWarningAnalyzePO.getStorageName());
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(inventoryWarningAnalyzePO.getStorageLocationName())) {
|
||||
sb.append("-").append(inventoryWarningAnalyzePO.getStorageLocationName());
|
||||
}
|
||||
inventoryWarningAnalyzePO.setEarlyWarningPosition(sb.toString());
|
||||
}
|
||||
return inventoryWarningAnalyzePOS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存预警分析
|
||||
*/
|
||||
public Boolean insert(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
|
||||
|
||||
return inventoryWarningAnalyzeDomainService.insert(inventoryWarningAnalyzeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改库存预警分析
|
||||
*/
|
||||
public Boolean update(InventoryWarningAnalyzeDO inventoryWarningAnalyzeDO) {
|
||||
return inventoryWarningAnalyzeDomainService.update(inventoryWarningAnalyzeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除库存预警分析
|
||||
*/
|
||||
public boolean delete(Long[] inventoryWarningAnalyzeIds) {
|
||||
return inventoryWarningAnalyzeDomainService.delete(inventoryWarningAnalyzeIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取库存预警分析详细信息
|
||||
*/
|
||||
public InventoryWarningAnalyzePO getInfo(Long inventoryWarningAnalyzeId)
|
||||
{
|
||||
return inventoryWarningAnalyzeDomainService.getInfo(inventoryWarningAnalyzeId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void inventoryWarningTask() {
|
||||
//查询所有的物料库存预警信息 未删除的
|
||||
List<MaterialInventoryWarningPO> materialInventoryWarningPOList = materialInventoryWarningDomainService.queryAllList();
|
||||
List<InventoryWarningAnalyze> analyzeList = new ArrayList<>();
|
||||
for (MaterialInventoryWarningPO materialInventoryWarningPO : materialInventoryWarningPOList) {
|
||||
//根据 物料基础信息id、仓库id、库区id、库位id、一级组织表ID、货主ID 去物料库存表中查询物料信息
|
||||
MaterialInventoryDO materialInventoryDO = new MaterialInventoryDO();
|
||||
materialInventoryDO.setMaterialBaseInfoId(materialInventoryWarningPO.getMaterialBaseInfoId());
|
||||
materialInventoryDO.setWarehouseId(materialInventoryWarningPO.getWarehouseId());
|
||||
materialInventoryDO.setStorageSectionId(materialInventoryWarningPO.getStorageSectionId());
|
||||
materialInventoryDO.setStorageLocationId(materialInventoryWarningPO.getStorageLocationId());
|
||||
materialInventoryDO.setTopOrganizationId(materialInventoryWarningPO.getTopOrganizationId());
|
||||
materialInventoryDO.setShipperId(materialInventoryWarningPO.getShipperId());
|
||||
MaterialInventoryPO materialInventoryPO = materialInventoryDomainService.selectOneByWhere(materialInventoryDO);
|
||||
|
||||
if (ObjectUtil.isNull(materialInventoryPO)) {
|
||||
//如果物料库存为null,则结束本次循环继续下次循环
|
||||
continue;
|
||||
}
|
||||
//获取库位上限和下限
|
||||
BigDecimal minTemperature = materialInventoryWarningPO.getMinTemperature();
|
||||
BigDecimal maxTemperature = materialInventoryWarningPO.getMaxTemperature();
|
||||
//物料信息的当前库存
|
||||
BigDecimal inventoryQuantity = materialInventoryPO.getInventoryQuantity();
|
||||
Integer warningAnalyzeType = 0;//预警类型
|
||||
BigDecimal warningStandardQuantity = BigDecimal.ZERO;
|
||||
if (inventoryQuantity.compareTo(minTemperature) < 0) {//库存不足
|
||||
warningAnalyzeType = 1;
|
||||
warningStandardQuantity = minTemperature;
|
||||
}
|
||||
|
||||
if (inventoryQuantity.compareTo(maxTemperature) > 0) {//库存超限
|
||||
warningAnalyzeType = 2;
|
||||
warningStandardQuantity = maxTemperature;
|
||||
}
|
||||
//如果预警类型不等于0增加库存预警分析表记录
|
||||
if (warningAnalyzeType != 0) {
|
||||
InventoryWarningAnalyze warningAnalyze = new InventoryWarningAnalyze();
|
||||
warningAnalyze.setOrganizationId(materialInventoryPO.getOrganizationId());
|
||||
warningAnalyze.setOrganizationName(materialInventoryPO.getOrganizationName());
|
||||
warningAnalyze.setTopOrganizationId(materialInventoryPO.getTopOrganizationId());
|
||||
warningAnalyze.setMaterialBaseInfoId(materialInventoryPO.getMaterialBaseInfoId());
|
||||
//查询物料信息
|
||||
MaterialBaseInfoPO materialBaseInfoPo = materialBaseInfoDomainService.selectOneByID(materialInventoryPO.getMaterialBaseInfoId());
|
||||
if (ObjectUtil.isNotNull(materialBaseInfoPo)) {
|
||||
warningAnalyze.setMaterialName(materialBaseInfoPo.getMaterialName());
|
||||
warningAnalyze.setMaterialCode(materialBaseInfoPo.getMaterialCode());
|
||||
warningAnalyze.setPackId(materialBaseInfoPo.getPackId());
|
||||
warningAnalyze.setPackCode(materialBaseInfoPo.getPackCode());
|
||||
warningAnalyze.setPackName(materialBaseInfoPo.getPackName());
|
||||
warningAnalyze.setShipperId(materialBaseInfoPo.getShipperId());
|
||||
warningAnalyze.setShipperName(materialBaseInfoPo.getShipperName());
|
||||
warningAnalyze.setShipperCode(materialBaseInfoPo.getShipperCode());
|
||||
warningAnalyze.setBarCode(materialBaseInfoPo.getBarCode());
|
||||
warningAnalyze.setUnitQuantity(materialBaseInfoPo.getUnitNumber());//单位数量
|
||||
}
|
||||
warningAnalyze.setWarehouseId(materialInventoryPO.getWarehouseId());
|
||||
warningAnalyze.setWarehouseCode(materialInventoryPO.getWarehouseCode());
|
||||
warningAnalyze.setWarehouseName(materialInventoryPO.getWarehouseName());
|
||||
warningAnalyze.setStorageSectionId(materialInventoryPO.getStorageSectionId());
|
||||
warningAnalyze.setStorageCode(materialInventoryPO.getStorageCode());
|
||||
warningAnalyze.setStorageName(materialInventoryPO.getStorageName());
|
||||
warningAnalyze.setStorageLocationId(materialInventoryPO.getStorageLocationId());
|
||||
warningAnalyze.setStorageLocationCode(materialInventoryPO.getStorageLocationCode());
|
||||
warningAnalyze.setStorageLocationName(materialInventoryPO.getStorageLocationName());
|
||||
warningAnalyze.setPackDetailId(materialInventoryWarningPO.getPackDetailId());
|
||||
warningAnalyze.setUnitCode(materialInventoryWarningPO.getUnitCode());
|
||||
warningAnalyze.setUnitName(materialInventoryWarningPO.getName());
|
||||
warningAnalyze.setInventoryQuantity(materialInventoryPO.getInventoryQuantity());
|
||||
warningAnalyze.setWarningAnalyzeNumber(OrderSequence.getOrderCode("YJ"));//预警单号
|
||||
warningAnalyze.setWarningAnalyzeType(warningAnalyzeType);
|
||||
warningAnalyze.setWarningStandardQuantity(warningStandardQuantity);//库存标准预警数
|
||||
warningAnalyze.setWarningTime(new Date());
|
||||
warningAnalyze.setRemark("");
|
||||
warningAnalyze.setCreateTime(new Date());
|
||||
warningAnalyze.setUpdateTime(new Date());
|
||||
warningAnalyze.setDelFlag(1);
|
||||
|
||||
analyzeList.add(warningAnalyze);
|
||||
}
|
||||
}
|
||||
|
||||
inventoryWarningAnalyzeDomainService.batchInsert(analyzeList);
|
||||
}
|
||||
}
|
||||
+237
@@ -0,0 +1,237 @@
|
||||
package com.mhd.wms.application.service.investigationManage;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.investigationManage.repository.po.InvestigationManagePO;
|
||||
import com.mhd.wms.domain.investigationManage.repository.todo.InvestigationManageDO;
|
||||
import com.mhd.wms.domain.investigationManage.service.InvestigationManageDomainService;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.service.InvestigetionManageDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 盘点管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-10
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InvestigationManageApplicationService {
|
||||
@Autowired
|
||||
private InvestigationManageDomainService investigationManageDomainService;
|
||||
@Autowired
|
||||
private InvestigetionManageDetailDomainService investigetionManageDetailDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询盘点管理列表
|
||||
*/
|
||||
|
||||
public List<InvestigationManagePO> queryList(InvestigationManageDO investigationManageDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
investigationManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
investigationManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return investigationManageDomainService.queryList(investigationManageDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增盘点管理
|
||||
*/
|
||||
public Boolean insert(InvestigationManageDO investigationManageDO) {
|
||||
//封装仓库信息
|
||||
warehouseParam(investigationManageDO);
|
||||
return investigationManageDomainService.insert(investigationManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改盘点管理
|
||||
*/
|
||||
public Boolean update(InvestigationManageDO investigationManageDO) {
|
||||
//封装仓库信息
|
||||
warehouseParam(investigationManageDO);
|
||||
return investigationManageDomainService.update(investigationManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除盘点管理
|
||||
*/
|
||||
public boolean delete(Long[] investigationManageIds) {
|
||||
return investigationManageDomainService.delete(investigationManageIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取盘点管理详细信息
|
||||
*/
|
||||
public InvestigationManagePO getInfo(Long investigationManageId) {
|
||||
return investigationManageDomainService.getInfo(investigationManageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核
|
||||
*/
|
||||
public Boolean auditState(InvestigationManageDO investigationManageDO){
|
||||
return investigationManageDomainService.auditState(investigationManageDO);
|
||||
}
|
||||
|
||||
public Boolean taskDistribution(InvestigationManageDO investigationManageDO){
|
||||
//设置作业人员信息
|
||||
operatorsParam(investigationManageDO);
|
||||
return investigationManageDomainService.taskDistribution(investigationManageDO);
|
||||
}
|
||||
|
||||
public Boolean investigationCount(InvestigationManageDO investigationManageDO){
|
||||
return investigationManageDomainService.investigationCount(investigationManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 完成盘点
|
||||
*/
|
||||
public Boolean finishInvestigation(Long investigationManageId){
|
||||
return investigationManageDomainService.finishInvestigation(investigationManageId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 按库位拣货 获取拣货作业单详细信息
|
||||
*/
|
||||
public InvestigationManagePO getInfoByStorageLocation(Long investigationManageId)
|
||||
{
|
||||
return investigationManageDomainService.getInfoByStorageLocation(investigationManageId);
|
||||
}
|
||||
|
||||
/**
|
||||
*按物料拣货 获取拣货作业单详细信息
|
||||
*/
|
||||
public InvestigationManagePO getInfoByMaterial(Long investigationManageId)
|
||||
{
|
||||
return investigationManageDomainService.getInfoByMaterial(investigationManageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 按物料分组 盘点
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/20 15:07
|
||||
* @param investigationManageDO
|
||||
* @return InvestigationManagePO
|
||||
*/
|
||||
public Boolean investigationPickingByMaterial(InvestigationManageDO investigationManageDO){
|
||||
InvestigationManageDO assembleInvestigationManageDO = assembleParamByInvestigationManage(investigationManageDO);
|
||||
return investigationManageDomainService.investigationPickingByMaterial(assembleInvestigationManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 盘点 装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param investigationManageDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private InvestigationManageDO assembleParamByInvestigationManage(InvestigationManageDO investigationManageDO) {
|
||||
InvestigationManagePO investigationManagePO = investigationManageDomainService.getInfo(investigationManageDO.getInvestigationManageId());
|
||||
if (investigationManagePO == null){
|
||||
throw new ServiceException("盘点单不存在");
|
||||
}
|
||||
if (investigationManagePO.getInvestigationStatus() > 3) {
|
||||
throw new ServiceException("盘点单已盘点完成");
|
||||
}
|
||||
InvestigationManageDO returnInvestigationManageDO = new InvestigationManageDO();
|
||||
returnInvestigationManageDO.setUpdateTime(investigationManageDO.getUpdateTime());
|
||||
returnInvestigationManageDO.setInvestigationManageId(investigationManagePO.getInvestigationManageId());
|
||||
returnInvestigationManageDO.setOrganizationId(investigationManagePO.getOrganizationId());
|
||||
returnInvestigationManageDO.setOrganizationName(investigationManagePO.getOrganizationName());
|
||||
returnInvestigationManageDO.setTopOrganizationId(investigationManagePO.getTopOrganizationId());
|
||||
returnInvestigationManageDO.setInvestigationNumber(investigationManagePO.getInvestigationNumber());
|
||||
InvestigetionManageDetailDO investigetionManageDetailDOByQuery = new InvestigetionManageDetailDO();
|
||||
investigetionManageDetailDOByQuery.setInvestigationNumber(investigationManagePO.getInvestigationNumber());
|
||||
List<InvestigetionManageDetailPO> investigetionManageDetailPODbList = investigetionManageDetailDomainService.queryList(investigetionManageDetailDOByQuery);
|
||||
Map<Long, InvestigetionManageDetailPO> taskPickingMaterialDetailDbMap = investigetionManageDetailPODbList.stream().collect(Collectors.toMap(InvestigetionManageDetailPO::getInvestigationManageDetailId, Function.identity()));
|
||||
List<InvestigetionManageDetailDO> returnInvestigetionManageDetailDOList = new ArrayList<>();
|
||||
for (InvestigetionManageDetailDO investigetionManageDetailDO : investigationManageDO.getInvestigetionManageDetailList()){
|
||||
//设置物料更多属性信息
|
||||
InvestigetionManageDetailPO investigetionManageDetailPO = taskPickingMaterialDetailDbMap.get(investigetionManageDetailDO.getInvestigationManageDetailId());
|
||||
if (investigetionManageDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (ObjectUtil.isNull(investigetionManageDetailDO.getInvestigationQuantity()) || investigetionManageDetailDO.getInvestigationQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进盘点直接跳过
|
||||
continue;
|
||||
}
|
||||
InvestigetionManageDetailDO returnInvestigetionManageDetailDO = new InvestigetionManageDetailDO();
|
||||
BeanUtils.copyProperties(investigetionManageDetailPO, returnInvestigetionManageDetailDO);
|
||||
returnInvestigetionManageDetailDO.setInvestigationQuantity(investigetionManageDetailDO.getInvestigationQuantity());
|
||||
returnInvestigetionManageDetailDOList.add(returnInvestigetionManageDetailDO);
|
||||
}
|
||||
returnInvestigationManageDO.setInvestigetionManageDetailList(returnInvestigetionManageDetailDOList);
|
||||
return returnInvestigationManageDO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param investigationManageDO
|
||||
*/
|
||||
private void operatorsParam(InvestigationManageDO investigationManageDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(investigationManageDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
investigationManageDO.setOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/10 20:28
|
||||
* @param investigationManageDO
|
||||
*/
|
||||
private void warehouseParam(InvestigationManageDO investigationManageDO){
|
||||
if (ObjectUtil.isNull(investigationManageDO.getWarehouseId())){
|
||||
throw new ServiceException("仓库信息不能为空");
|
||||
}
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(investigationManageDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
investigationManageDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
investigationManageDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.investigetionManageDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.service.InvestigetionManageDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 盘点详情管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-10
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InvestigetionManageDetailApplicationService {
|
||||
@Autowired
|
||||
private InvestigetionManageDetailDomainService investigetionManageDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询盘点详情管理列表
|
||||
*/
|
||||
|
||||
public List<InvestigetionManageDetailPO> queryList(InvestigetionManageDetailDO investigetionManageDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
investigetionManageDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return investigetionManageDetailDomainService.queryList(investigetionManageDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增盘点详情管理
|
||||
*/
|
||||
public Boolean insert(InvestigetionManageDetailDO investigetionManageDetailDO) {
|
||||
|
||||
return investigetionManageDetailDomainService.insert(investigetionManageDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改盘点详情管理
|
||||
*/
|
||||
public Boolean update(InvestigetionManageDetailDO investigetionManageDetailDO) {
|
||||
return investigetionManageDetailDomainService.update(investigetionManageDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除盘点详情管理
|
||||
*/
|
||||
public boolean delete(Long[] investigationManageDetailIds) {
|
||||
return investigetionManageDetailDomainService.delete(investigationManageDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取盘点详情管理详细信息
|
||||
*/
|
||||
public InvestigetionManageDetailPO getInfo(Long investigationManageDetailId)
|
||||
{
|
||||
return investigetionManageDetailDomainService.getInfo(investigationManageDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.materialBarCode;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialBarCode.repository.po.MaterialBarCodePO;
|
||||
import com.mhd.wms.domain.materialBarCode.repository.todo.MaterialBarCodeDO;
|
||||
import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料条码信息ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialBarCodeApplicationService {
|
||||
@Autowired
|
||||
private MaterialBarCodeDomainService materialBarCodeDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料条码信息列表
|
||||
*/
|
||||
|
||||
public List<MaterialBarCodePO> queryList(MaterialBarCodeDO materialBarCodeDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialBarCodeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialBarCodeDomainService.queryList(materialBarCodeDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料条码信息
|
||||
*/
|
||||
public Boolean insert(MaterialBarCodeDO materialBarCodeDO) {
|
||||
|
||||
return materialBarCodeDomainService.insert(materialBarCodeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料条码信息
|
||||
*/
|
||||
public Boolean update(MaterialBarCodeDO materialBarCodeDO) {
|
||||
return materialBarCodeDomainService.update(materialBarCodeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料条码信息
|
||||
*/
|
||||
public boolean delete(Long[] materialBarCodeIds) {
|
||||
return materialBarCodeDomainService.delete(materialBarCodeIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料条码信息详细信息
|
||||
*/
|
||||
public MaterialBarCodePO getInfo(Long materialBarCodeId)
|
||||
{
|
||||
return materialBarCodeDomainService.getInfo(materialBarCodeId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
package com.mhd.wms.application.service.materialBaseInfo;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialBarCode.service.MaterialBarCodeDomainService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.service.MaterialBaseInfoDomainService;
|
||||
import com.mhd.wms.domain.materialCommon.repository.todo.MaterialCommonDO;
|
||||
import com.mhd.wms.domain.materialCommon.service.MaterialCommonDomainService;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料基础信息ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialBaseInfoApplicationService {
|
||||
@Autowired
|
||||
private MaterialBaseInfoDomainService materialBaseInfoDomainService;
|
||||
@Autowired
|
||||
private MaterialGoodsRuleDomainService materialGoodsRuleDomainService;
|
||||
@Autowired
|
||||
private MaterialCommonDomainService materialCommonDomainService;
|
||||
@Autowired
|
||||
private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
|
||||
@Autowired
|
||||
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
||||
@Autowired
|
||||
private MaterialBarCodeDomainService materialBarCodeDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料基础信息列表
|
||||
*/
|
||||
|
||||
public List<MaterialBaseInfoPO> queryList(MaterialBaseInfoDO materialBaseInfoDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialBaseInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialBaseInfoDomainService.queryList(materialBaseInfoDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料基础信息
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insert(MaterialBaseInfoDO materialBaseInfoDO) {
|
||||
Long materialBaseInfoId = materialBaseInfoDomainService.insert(materialBaseInfoDO);
|
||||
materialBaseInfoDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
//商品规则
|
||||
MaterialGoodsRuleDO materialGoodsRuleDO = materialBaseInfoDO.getMaterialGoodsRule();
|
||||
materialGoodsRuleDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialGoodsRuleDomainService.insert(materialGoodsRuleDO);
|
||||
//公共信息
|
||||
MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
|
||||
materialCommonDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialCommonDomainService.insert(materialCommonDO);
|
||||
//仓库控制信息
|
||||
MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
|
||||
materialWarehouseControlDO.setMaterialBaseInfoId(materialBaseInfoId);
|
||||
materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
|
||||
//库存预警
|
||||
materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
//条码信息
|
||||
materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料基础信息
|
||||
*/
|
||||
public Boolean update(MaterialBaseInfoDO materialBaseInfoDO) {
|
||||
materialBaseInfoDomainService.update(materialBaseInfoDO);
|
||||
//商品规则
|
||||
MaterialGoodsRuleDO materialGoodsRuleDO = materialBaseInfoDO.getMaterialGoodsRule();
|
||||
materialGoodsRuleDomainService.update(materialGoodsRuleDO);
|
||||
//公共信息
|
||||
MaterialCommonDO materialCommonDO = materialBaseInfoDO.getMaterialCommon();
|
||||
materialCommonDomainService.update(materialCommonDO);
|
||||
//仓库控制信息
|
||||
MaterialWarehouseControlDO materialWarehouseControlDO = materialBaseInfoDO.getMaterialWarehouseControl();
|
||||
materialWarehouseControlDomainService.update(materialWarehouseControlDO);
|
||||
//库存预警
|
||||
materialInventoryWarningDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
//条码信息
|
||||
materialBarCodeDomainService.batchInsertOrUpdate(materialBaseInfoDO);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料基础信息
|
||||
*/
|
||||
public boolean delete(Long[] materialBaseInfoIds) {
|
||||
return materialBaseInfoDomainService.delete(materialBaseInfoIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料基础信息详细信息
|
||||
*/
|
||||
public MaterialBaseInfoPO getInfo(Long materialBaseInfoId)
|
||||
{
|
||||
return materialBaseInfoDomainService.getInfo(materialBaseInfoId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 无单收货单 根据物料信息获取明细
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/16 22:18
|
||||
* @param materialBaseInfoDO
|
||||
* @return MaterialBaseInfoPO
|
||||
*/
|
||||
public MaterialBaseInfoPO getInfoByNoOrderReceipt(MaterialBaseInfoDO materialBaseInfoDO){
|
||||
return materialBaseInfoDomainService.getInfoByNoOrderReceipt(materialBaseInfoDO);
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.materialCommon;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialCommon.repository.po.MaterialCommonPO;
|
||||
import com.mhd.wms.domain.materialCommon.repository.todo.MaterialCommonDO;
|
||||
import com.mhd.wms.domain.materialCommon.service.MaterialCommonDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料公共信息ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialCommonApplicationService {
|
||||
@Autowired
|
||||
private MaterialCommonDomainService materialCommonDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料公共信息列表
|
||||
*/
|
||||
|
||||
public List<MaterialCommonPO> queryList(MaterialCommonDO materialCommonDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialCommonDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialCommonDomainService.queryList(materialCommonDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料公共信息
|
||||
*/
|
||||
public Boolean insert(MaterialCommonDO materialCommonDO) {
|
||||
|
||||
return materialCommonDomainService.insert(materialCommonDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料公共信息
|
||||
*/
|
||||
public Boolean update(MaterialCommonDO materialCommonDO) {
|
||||
return materialCommonDomainService.update(materialCommonDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料公共信息
|
||||
*/
|
||||
public boolean delete(Long[] materialCommonIds) {
|
||||
return materialCommonDomainService.delete(materialCommonIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料公共信息详细信息
|
||||
*/
|
||||
public MaterialCommonPO getInfo(Long materialCommonId)
|
||||
{
|
||||
return materialCommonDomainService.getInfo(materialCommonId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
package com.mhd.wms.application.service.materialGoodsRule;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.todo.MaterialGoodsRuleDO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.service.MaterialGoodsRuleDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料商品规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialGoodsRuleApplicationService {
|
||||
@Autowired
|
||||
private MaterialGoodsRuleDomainService materialGoodsRuleDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料商品规则列表
|
||||
*/
|
||||
|
||||
public List<MaterialGoodsRulePO> queryList(MaterialGoodsRuleDO materialGoodsRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialGoodsRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialGoodsRuleDomainService.queryList(materialGoodsRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料商品规则
|
||||
*/
|
||||
public Boolean insert(MaterialGoodsRuleDO materialGoodsRuleDO) {
|
||||
|
||||
return materialGoodsRuleDomainService.insert(materialGoodsRuleDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料商品规则
|
||||
*/
|
||||
public Boolean update(MaterialGoodsRuleDO materialGoodsRuleDO) {
|
||||
return materialGoodsRuleDomainService.update(materialGoodsRuleDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料商品规则
|
||||
*/
|
||||
public boolean delete(Long[] materialGoodsRuleIds) {
|
||||
return materialGoodsRuleDomainService.delete(materialGoodsRuleIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料商品规则详细信息
|
||||
*/
|
||||
public MaterialGoodsRulePO getInfo(Long materialGoodsRuleId)
|
||||
{
|
||||
return materialGoodsRuleDomainService.getInfo(materialGoodsRuleId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 物料基础信息id 获取物料商品规则详细信息
|
||||
*/
|
||||
public MaterialGoodsRulePO getInfoByMaterialBaseInfoIds(Long materialBaseInfoId)
|
||||
{
|
||||
return materialGoodsRuleDomainService.getInfoByMaterialBaseInfoIds(materialBaseInfoId);
|
||||
}
|
||||
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
package com.mhd.wms.application.service.materialInventory;
|
||||
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryQueryListPO;
|
||||
import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
|
||||
import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryQueryListDO;
|
||||
import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料库存ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-29
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialInventoryApplicationService {
|
||||
@Autowired
|
||||
private MaterialInventoryDomainService materialInventoryDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料库存列表
|
||||
*/
|
||||
|
||||
public List<MaterialInventoryPO> queryList(MaterialInventoryDO materialInventoryDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
materialInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return materialInventoryDomainService.queryList(materialInventoryDO);
|
||||
}
|
||||
|
||||
public BigDecimal sumInventoryQuantity(MaterialInventoryDO materialInventoryDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
materialInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
List<MaterialInventoryPO> materialInventoryPOS = materialInventoryDomainService.queryList(materialInventoryDO);
|
||||
if (CollectionUtils.isNotEmpty(materialInventoryPOS)){
|
||||
return materialInventoryPOS.stream().map(MaterialInventoryPO::getAllocationQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
}
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物料库存
|
||||
*/
|
||||
public Boolean insert(MaterialInventoryDO materialInventoryDO) {
|
||||
|
||||
return materialInventoryDomainService.insert(materialInventoryDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料库存
|
||||
*/
|
||||
public Boolean update(MaterialInventoryDO materialInventoryDO) {
|
||||
return materialInventoryDomainService.update(materialInventoryDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料库存
|
||||
*/
|
||||
public boolean delete(Long[] materialInventoryIds) {
|
||||
return materialInventoryDomainService.delete(materialInventoryIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料库存详细信息
|
||||
*/
|
||||
public MaterialInventoryPO getInfo(Long materialInventoryId)
|
||||
{
|
||||
return materialInventoryDomainService.getInfo(materialInventoryId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 根据库位Id和物料基础信息Id 获取物料库存详细信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/29 17:15
|
||||
* @param storageLocationId
|
||||
* @param materialBaseInfoId
|
||||
* @return BigDecimal
|
||||
*/
|
||||
public BigDecimal getInventoryByStorageLocationIdAndMaterialBaseInfoId(Long storageLocationId, Long materialBaseInfoId) {
|
||||
return materialInventoryDomainService.getInventoryByStorageLocationIdAndMaterialBaseInfoId(storageLocationId, materialBaseInfoId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:库存查询列表
|
||||
* @param materialInventoryQueryListDO
|
||||
* @return: java.util.List<com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryQueryListPO>
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-16 14:43:38
|
||||
*/
|
||||
public List<MaterialInventoryQueryListPO> materialQueryList(MaterialInventoryQueryListDO materialInventoryQueryListDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialInventoryQueryListDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialInventoryDomainService.materialQueryList(materialInventoryQueryListDO);
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.materialInventoryWarning;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.repository.po.MaterialInventoryWarningPO;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.repository.todo.MaterialInventoryWarningDO;
|
||||
import com.mhd.wms.domain.materialInventoryWarning.service.MaterialInventoryWarningDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料库存预警ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialInventoryWarningApplicationService {
|
||||
@Autowired
|
||||
private MaterialInventoryWarningDomainService materialInventoryWarningDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料库存预警列表
|
||||
*/
|
||||
|
||||
public List<MaterialInventoryWarningPO> queryList(MaterialInventoryWarningDO materialInventoryWarningDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialInventoryWarningDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialInventoryWarningDomainService.queryList(materialInventoryWarningDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料库存预警
|
||||
*/
|
||||
public Boolean insert(MaterialInventoryWarningDO materialInventoryWarningDO) {
|
||||
|
||||
return materialInventoryWarningDomainService.insert(materialInventoryWarningDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料库存预警
|
||||
*/
|
||||
public Boolean update(MaterialInventoryWarningDO materialInventoryWarningDO) {
|
||||
return materialInventoryWarningDomainService.update(materialInventoryWarningDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料库存预警
|
||||
*/
|
||||
public boolean delete(Long[] materialInventoryWarningIds) {
|
||||
return materialInventoryWarningDomainService.delete(materialInventoryWarningIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料库存预警详细信息
|
||||
*/
|
||||
public MaterialInventoryWarningPO getInfo(Long materialInventoryWarningId)
|
||||
{
|
||||
return materialInventoryWarningDomainService.getInfo(materialInventoryWarningId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.mhd.wms.application.service.materialMoreDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialMoreDetail.repository.po.MaterialMoreDetailPO;
|
||||
import com.mhd.wms.domain.materialMoreDetail.repository.todo.MaterialMoreDetailDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料更多属性明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialMoreDetailApplicationService {
|
||||
@Autowired
|
||||
private com.mhd.wms.domain.materialMoreDetail.service.MaterialMoreDetailDomainService MaterialMoreDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料更多属性明细列表
|
||||
*/
|
||||
|
||||
public List<MaterialMoreDetailPO> queryList(MaterialMoreDetailDO materialMoreDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialMoreDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return MaterialMoreDetailDomainService.queryList(materialMoreDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料更多属性明细
|
||||
*/
|
||||
public Boolean insert(MaterialMoreDetailDO materialMoreDetailDO) {
|
||||
|
||||
return MaterialMoreDetailDomainService.insert(materialMoreDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料更多属性明细
|
||||
*/
|
||||
public Boolean update(MaterialMoreDetailDO materialMoreDetailDO) {
|
||||
return MaterialMoreDetailDomainService.update(materialMoreDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料更多属性明细
|
||||
*/
|
||||
public boolean delete(Long[] materialMoreDetailIds) {
|
||||
return MaterialMoreDetailDomainService.delete(materialMoreDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料更多属性明细详细信息
|
||||
*/
|
||||
public MaterialMoreDetailPO getInfo(Long materialMoreDetailId)
|
||||
{
|
||||
return MaterialMoreDetailDomainService.getInfo(materialMoreDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.materialWarehouseControl;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehouseControlPO;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.repository.todo.MaterialWarehouseControlDO;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.service.MaterialWarehouseControlDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 仓库控制信息ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MaterialWarehouseControlApplicationService {
|
||||
@Autowired
|
||||
private MaterialWarehouseControlDomainService materialWarehouseControlDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询仓库控制信息列表
|
||||
*/
|
||||
|
||||
public List<MaterialWarehouseControlPO> queryList(MaterialWarehouseControlDO materialWarehouseControlDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
materialWarehouseControlDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return materialWarehouseControlDomainService.queryList(materialWarehouseControlDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增仓库控制信息
|
||||
*/
|
||||
public Boolean insert(MaterialWarehouseControlDO materialWarehouseControlDO) {
|
||||
|
||||
return materialWarehouseControlDomainService.insert(materialWarehouseControlDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改仓库控制信息
|
||||
*/
|
||||
public Boolean update(MaterialWarehouseControlDO materialWarehouseControlDO) {
|
||||
return materialWarehouseControlDomainService.update(materialWarehouseControlDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除仓库控制信息
|
||||
*/
|
||||
public boolean delete(Long[] materialWarehouseControlIds) {
|
||||
return materialWarehouseControlDomainService.delete(materialWarehouseControlIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仓库控制信息详细信息
|
||||
*/
|
||||
public MaterialWarehouseControlPO getInfo(Long materialWarehouseControlId)
|
||||
{
|
||||
return materialWarehouseControlDomainService.getInfo(materialWarehouseControlId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
package com.mhd.wms.application.service.mobilizeManage;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.mobilizeManage.repository.po.MobilizeManagePO;
|
||||
import com.mhd.wms.domain.mobilizeManage.repository.todo.MobilizeManageDO;
|
||||
import com.mhd.wms.domain.mobilizeManage.service.MobilizeManageDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 调拨管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-08
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MobilizeManageApplicationService {
|
||||
@Autowired
|
||||
private MobilizeManageDomainService mobilizeManageDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询调拨管理列表
|
||||
*/
|
||||
|
||||
public List<MobilizeManagePO> queryList(MobilizeManageDO mobilizeManageDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
mobilizeManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
mobilizeManageDO.setOutWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return mobilizeManageDomainService.queryList(mobilizeManageDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增调拨管理
|
||||
*/
|
||||
public Boolean insert(MobilizeManageDO mobilizeManageDO) {
|
||||
|
||||
return mobilizeManageDomainService.insert(mobilizeManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改调拨管理
|
||||
*/
|
||||
public Boolean update(MobilizeManageDO mobilizeManageDO) throws Exception{
|
||||
return mobilizeManageDomainService.update(mobilizeManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除调拨管理
|
||||
*/
|
||||
public boolean delete(Long[] mobilizeManageIds) {
|
||||
return mobilizeManageDomainService.delete(mobilizeManageIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取调拨管理详细信息
|
||||
*/
|
||||
public MobilizeManagePO getInfo(Long mobilizeManageId)
|
||||
{
|
||||
return mobilizeManageDomainService.getInfo(mobilizeManageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核调拨单
|
||||
*/
|
||||
public Boolean auditMobilizeManage(MobilizeManageDO mobilizeManageDO)
|
||||
{
|
||||
return mobilizeManageDomainService.auditMobilizeManage(mobilizeManageDO);
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.mobilizeManageDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.mobilizeManageDetail.repository.po.MobilizeManageDetailPO;
|
||||
import com.mhd.wms.domain.mobilizeManageDetail.repository.todo.MobilizeManageDetailDO;
|
||||
import com.mhd.wms.domain.mobilizeManageDetail.service.MobilizeManageDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 调拨管理详情ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-08
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MobilizeManageDetailApplicationService {
|
||||
@Autowired
|
||||
private MobilizeManageDetailDomainService mobilizeManageDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询调拨管理详情列表
|
||||
*/
|
||||
|
||||
public List<MobilizeManageDetailPO> queryList(MobilizeManageDetailDO mobilizeManageDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
mobilizeManageDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return mobilizeManageDetailDomainService.queryList(mobilizeManageDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增调拨管理详情
|
||||
*/
|
||||
public Boolean insert(MobilizeManageDetailDO mobilizeManageDetailDO) {
|
||||
|
||||
return mobilizeManageDetailDomainService.insert(mobilizeManageDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改调拨管理详情
|
||||
*/
|
||||
public Boolean update(MobilizeManageDetailDO mobilizeManageDetailDO) {
|
||||
return mobilizeManageDetailDomainService.update(mobilizeManageDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除调拨管理详情
|
||||
*/
|
||||
public boolean delete(Long[] mobilizeMaterialDetails) {
|
||||
return mobilizeManageDetailDomainService.delete(mobilizeMaterialDetails);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取调拨管理详情详细信息
|
||||
*/
|
||||
public MobilizeManageDetailPO getInfo(Long mobilizeMaterialDetail)
|
||||
{
|
||||
return mobilizeManageDetailDomainService.getInfo(mobilizeMaterialDetail);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.noticeMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.noticeMaterialDetail.repository.po.NoticeMaterialDetailPO;
|
||||
import com.mhd.wms.domain.noticeMaterialDetail.repository.todo.NoticeMaterialDetailDO;
|
||||
import com.mhd.wms.domain.noticeMaterialDetail.service.NoticeMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-17
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class NoticeMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private NoticeMaterialDetailDomainService noticeMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料明细列表
|
||||
*/
|
||||
|
||||
public List<NoticeMaterialDetailPO> queryList(NoticeMaterialDetailDO noticeMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
noticeMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return noticeMaterialDetailDomainService.queryList(noticeMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料明细
|
||||
*/
|
||||
public Boolean insert(NoticeMaterialDetailDO noticeMaterialDetailDO) {
|
||||
|
||||
return noticeMaterialDetailDomainService.insert(noticeMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料明细
|
||||
*/
|
||||
public Boolean update(NoticeMaterialDetailDO noticeMaterialDetailDO) {
|
||||
return noticeMaterialDetailDomainService.update(noticeMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料明细
|
||||
*/
|
||||
public boolean delete(Long[] noticeMaterialDetailIds) {
|
||||
return noticeMaterialDetailDomainService.delete(noticeMaterialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料明细详细信息
|
||||
*/
|
||||
public NoticeMaterialDetailPO getInfo(Long noticeMaterialDetailId)
|
||||
{
|
||||
return noticeMaterialDetailDomainService.getInfo(noticeMaterialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
package com.mhd.wms.application.service.noticeOrder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.SysDictData;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.noticeOrder.repository.po.NoticeOrderPO;
|
||||
import com.mhd.wms.domain.noticeOrder.repository.todo.NoticeOrderDO;
|
||||
import com.mhd.wms.domain.noticeOrder.service.NoticeOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 入库通知单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class NoticeOrderApplicationService {
|
||||
@Autowired
|
||||
private NoticeOrderDomainService noticeOrderDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询入库通知单列表
|
||||
*/
|
||||
|
||||
public List<NoticeOrderPO> queryList(NoticeOrderDO noticeOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
noticeOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
noticeOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return noticeOrderDomainService.queryList(noticeOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增入库通知单
|
||||
*/
|
||||
public Boolean insert(NoticeOrderDO noticeOrderDO) {
|
||||
//设置仓库
|
||||
setWarehouseInfo(noticeOrderDO);
|
||||
//设置货主信息
|
||||
shipperParam(noticeOrderDO);
|
||||
//设置供应商信息
|
||||
supplierParam(noticeOrderDO);
|
||||
//设置数据字典键值
|
||||
setDataDict(noticeOrderDO);
|
||||
return noticeOrderDomainService.insert(noticeOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入库通知单
|
||||
*/
|
||||
public Boolean update(NoticeOrderDO noticeOrderDO) {
|
||||
return noticeOrderDomainService.update(noticeOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除入库通知单
|
||||
*/
|
||||
public boolean delete(Long[] noticeIds) {
|
||||
return noticeOrderDomainService.delete(noticeIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入库通知单详细信息
|
||||
*/
|
||||
public NoticeOrderPO getInfo(Long noticeId)
|
||||
{
|
||||
return noticeOrderDomainService.getInfo(noticeId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 作废入库通知单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 10:14
|
||||
* @param noticeIds
|
||||
* @return List<NoticeOrderDO>
|
||||
*/
|
||||
public Boolean nullifyByIds(Long[] noticeIds) {
|
||||
return noticeOrderDomainService.nullifyByIds(noticeIds);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 生成入库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 10:14
|
||||
* @param noticeIds
|
||||
* @return List<NoticeOrderDO>
|
||||
*/
|
||||
public Boolean generateStockInOrder(Long[] noticeIds) {
|
||||
return noticeOrderDomainService.generateStockInOrder(noticeIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 生成出库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 11:14
|
||||
* @param noticeIds
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean generateStockOutOrder(Long[] noticeIds) {
|
||||
return noticeOrderDomainService.generateStockOutOrder(noticeIds);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 设置仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param noticeOrderDO
|
||||
*/
|
||||
private void setWarehouseInfo(NoticeOrderDO noticeOrderDO) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(noticeOrderDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
noticeOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
noticeOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装货主信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param noticeOrderDO
|
||||
*/
|
||||
private void shipperParam(NoticeOrderDO noticeOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(noticeOrderDO.getShipperId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取货主信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
noticeOrderDO.setShipperCode(userPo.getUserMemberCode());
|
||||
noticeOrderDO.setShipperName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装供应商信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param noticeOrderDO
|
||||
*/
|
||||
private void supplierParam(NoticeOrderDO noticeOrderDO){
|
||||
if (ObjectUtil.isNotNull(noticeOrderDO.getSupplierId())){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(noticeOrderDO.getSupplierId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取供应商信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
noticeOrderDO.setSupplierName(userPo.getUserName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置数据字典键值
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 14:33
|
||||
* @param noticeOrderDO
|
||||
*/
|
||||
private void setDataDict(NoticeOrderDO noticeOrderDO){
|
||||
if (noticeOrderDO.getType() == 1){
|
||||
//翻译单据类型
|
||||
AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.DOCUMENT_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
|
||||
throw new ServiceException("单据类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), noticeOrderDO.getOrderTypeCode())).findAny().orElse(null);
|
||||
if (null == documentTypeData) {
|
||||
throw new ServiceException("单据类型【" + noticeOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
noticeOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
|
||||
}else {
|
||||
//翻译单据类型
|
||||
AjaxResult outDocumentTypeResult = systemServiceFeign.selectListByDictType(DictCode.OUT_DOCUMENT_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(outDocumentTypeResult.get("code")))) {
|
||||
throw new ServiceException("单据类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> outDocumentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(outDocumentTypeResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData outDocumentTypeData = outDocumentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), noticeOrderDO.getOrderTypeCode())).findAny().orElse(null);
|
||||
if (null == outDocumentTypeData) {
|
||||
throw new ServiceException("单据类型【" + noticeOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
noticeOrderDO.setOrderTypeName(outDocumentTypeData.getDictLabel());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.outMaterialDetailSerialNumber;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.po.OutMaterialDetailSerialNumberPO;
|
||||
import com.mhd.wms.domain.outMaterialDetailSerialNumber.repository.todo.OutMaterialDetailSerialNumberDO;
|
||||
import com.mhd.wms.domain.outMaterialDetailSerialNumber.service.OutMaterialDetailSerialNumberDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 出库单物料明细序列号ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-03
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OutMaterialDetailSerialNumberApplicationService {
|
||||
@Autowired
|
||||
private OutMaterialDetailSerialNumberDomainService outMaterialDetailSerialNumberDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询出库单物料明细序列号列表
|
||||
*/
|
||||
|
||||
public List<OutMaterialDetailSerialNumberPO> queryList(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
outMaterialDetailSerialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return outMaterialDetailSerialNumberDomainService.queryList(outMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库单物料明细序列号
|
||||
*/
|
||||
public Boolean insert(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
|
||||
|
||||
return outMaterialDetailSerialNumberDomainService.insert(outMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库单物料明细序列号
|
||||
*/
|
||||
public Boolean update(OutMaterialDetailSerialNumberDO outMaterialDetailSerialNumberDO) {
|
||||
return outMaterialDetailSerialNumberDomainService.update(outMaterialDetailSerialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除出库单物料明细序列号
|
||||
*/
|
||||
public boolean delete(Long[] outMaterialDetailSerialNumberIds) {
|
||||
return outMaterialDetailSerialNumberDomainService.delete(outMaterialDetailSerialNumberIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库单物料明细序列号详细信息
|
||||
*/
|
||||
public OutMaterialDetailSerialNumberPO getInfo(Long outMaterialDetailSerialNumberId)
|
||||
{
|
||||
return outMaterialDetailSerialNumberDomainService.getInfo(outMaterialDetailSerialNumberId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.outOrderAbnormal;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.po.OutOrderAbnormalPO;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.repository.todo.OutOrderAbnormalDO;
|
||||
import com.mhd.wms.domain.outOrderAbnormal.service.OutOrderAbnormalDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 出库异常单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OutOrderAbnormalApplicationService {
|
||||
@Autowired
|
||||
private OutOrderAbnormalDomainService outOrderAbnormalDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询出库异常单列表
|
||||
*/
|
||||
|
||||
public List<OutOrderAbnormalPO> queryList(OutOrderAbnormalDO outOrderAbnormalDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
outOrderAbnormalDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return outOrderAbnormalDomainService.queryList(outOrderAbnormalDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库异常单
|
||||
*/
|
||||
public Boolean insert(OutOrderAbnormalDO outOrderAbnormalDO) {
|
||||
|
||||
return outOrderAbnormalDomainService.insert(outOrderAbnormalDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库异常单
|
||||
*/
|
||||
public Boolean update(OutOrderAbnormalDO outOrderAbnormalDO) {
|
||||
return outOrderAbnormalDomainService.update(outOrderAbnormalDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除出库异常单
|
||||
*/
|
||||
public boolean delete(Long[] outOrderAbnormalIds) {
|
||||
return outOrderAbnormalDomainService.delete(outOrderAbnormalIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库异常单详细信息
|
||||
*/
|
||||
public OutOrderAbnormalPO getInfo(Long outOrderAbnormalId)
|
||||
{
|
||||
return outOrderAbnormalDomainService.getInfo(outOrderAbnormalId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
package com.mhd.wms.application.service.overStock;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.overStock.repository.po.OverStockInOrderOutOrderListPO;
|
||||
import com.mhd.wms.domain.overStock.repository.po.OverStockPO;
|
||||
import com.mhd.wms.domain.overStock.repository.po.QueryOrderOverStockDetailPO;
|
||||
import com.mhd.wms.domain.overStock.repository.po.QueryOrderOverStockPO;
|
||||
import com.mhd.wms.domain.overStock.repository.todo.ExecuteOverStockDO;
|
||||
import com.mhd.wms.domain.overStock.repository.todo.OverStockDO;
|
||||
import com.mhd.wms.domain.overStock.repository.todo.QueryOrderOverStockDO;
|
||||
import com.mhd.wms.domain.overStock.service.OverStockDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 越库管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-23
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OverStockApplicationService {
|
||||
@Autowired
|
||||
private OverStockDomainService overStockDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询越库管理列表
|
||||
*/
|
||||
|
||||
public List<OverStockPO> queryList(OverStockDO overStockDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
overStockDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return overStockDomainService.queryList(overStockDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增越库管理
|
||||
*/
|
||||
public Boolean insert(OverStockDO overStockDO) {
|
||||
|
||||
return overStockDomainService.insert(overStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改越库管理
|
||||
*/
|
||||
public Boolean update(OverStockDO overStockDO) {
|
||||
return overStockDomainService.update(overStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除越库管理
|
||||
*/
|
||||
public boolean delete(Long[] overStockIds) {
|
||||
return overStockDomainService.delete(overStockIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取越库管理详细信息
|
||||
*/
|
||||
public OverStockPO getInfo(Long overStockId)
|
||||
{
|
||||
return overStockDomainService.getInfo(overStockId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description:查询单据越库列表
|
||||
* @param queryOrderOverStockDO
|
||||
* @return: java.util.List<com.mhd.wms.domain.overStock.repository.po.OverStockPO>
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-23 17:25:53
|
||||
*/
|
||||
public List<QueryOrderOverStockPO> getByInAndOutOrder(QueryOrderOverStockDO queryOrderOverStockDO) {
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(SecurityUtils.getLoginUser().getUserid());
|
||||
queryOrderOverStockDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
return overStockDomainService.getByInAndOutOrder(queryOrderOverStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 获取越库单据详情
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/25 18:03
|
||||
* @param queryOrderOverStockDO
|
||||
* @return QueryOrderOverStockDetailPO
|
||||
*/
|
||||
public QueryOrderOverStockDetailPO getByOrderDetail(QueryOrderOverStockDO queryOrderOverStockDO){
|
||||
return overStockDomainService.getByOrderDetail(queryOrderOverStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:查询越库管理入库出库详情列表
|
||||
* @param overStockDO
|
||||
* @return: com.mhd.wms.domain.overStock.repository.po.OverStockInOrderOutOrderListPO
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-26 10:03:03
|
||||
*/
|
||||
public OverStockInOrderOutOrderListPO overStockInOrderOutOrderDetailList(OverStockDO overStockDO) {
|
||||
return overStockDomainService.overStockInOrderOutOrderDetailList(overStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:执行越库
|
||||
* @param executeOverStockDO
|
||||
* @return: java.lang.String
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-26 15:09:14
|
||||
*/
|
||||
public boolean executeOverStock(ExecuteOverStockDO executeOverStockDO) {
|
||||
return overStockDomainService.executeOverStock(executeOverStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:取消越库标记(分拨)
|
||||
* @param executeOverStockDO
|
||||
* @return: java.lang.String
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-26 15:55:59
|
||||
*/
|
||||
public boolean cancelOverStock(ExecuteOverStockDO executeOverStockDO) {
|
||||
return overStockDomainService.cancelOverStock(executeOverStockDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:取消越库任务(直接)
|
||||
* @param overStockIds
|
||||
* @return: boolean
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-27 11:25:15
|
||||
*/
|
||||
public boolean cancelOverStockDirectByIds(Long[] overStockIds) {
|
||||
return overStockDomainService.cancelOverStockDirectByIds(overStockIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:取消越库标记(分拨)
|
||||
* @param overStockIds
|
||||
* @return: boolean
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-27 15:33:40
|
||||
*/
|
||||
public boolean cancelOverStockSignByIds(Long[] overStockIds) {
|
||||
return overStockDomainService.cancelOverStockSignByIds(overStockIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:执行越库
|
||||
* @param overStockIds
|
||||
* @return: boolean
|
||||
* @author: lianzj
|
||||
* @time: 2024-07-27 15:37:03
|
||||
*/
|
||||
public boolean executeOverStockByIds(Long[] overStockIds) {
|
||||
return overStockDomainService.executeOverStockByIds(overStockIds);
|
||||
}
|
||||
}
|
||||
+250
@@ -0,0 +1,250 @@
|
||||
package com.mhd.wms.application.service.pickingOrder;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.repository.todo.PickingMaterialDetailDO;
|
||||
import com.mhd.wms.domain.pickingMaterialDetail.service.PickingMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.pickingOrder.repository.po.PickingOrderPO;
|
||||
import com.mhd.wms.domain.pickingOrder.repository.todo.PickingOrderDO;
|
||||
import com.mhd.wms.domain.pickingOrder.service.PickingOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 拣货单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PickingOrderApplicationService {
|
||||
@Autowired
|
||||
private PickingOrderDomainService pickingOrderDomainService;
|
||||
@Autowired
|
||||
private PickingMaterialDetailDomainService pickingMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询拣货单列表
|
||||
*/
|
||||
|
||||
public List<PickingOrderPO> queryList(PickingOrderDO pickingOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
pickingOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
pickingOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return pickingOrderDomainService.queryList(pickingOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增拣货单
|
||||
*/
|
||||
public Boolean insert(PickingOrderDO pickingOrderDO) {
|
||||
|
||||
return pickingOrderDomainService.insert(pickingOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拣货单
|
||||
*/
|
||||
public Boolean update(PickingOrderDO pickingOrderDO) {
|
||||
return pickingOrderDomainService.update(pickingOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除拣货单
|
||||
*/
|
||||
public boolean delete(Long[] pickingOrderIds) {
|
||||
return pickingOrderDomainService.delete(pickingOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取拣货单详细信息
|
||||
*/
|
||||
public PickingOrderPO getInfoByIdAndType(Long pickingOrderId, Integer type) {
|
||||
return pickingOrderDomainService.getInfoByIdAndType(pickingOrderId, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 整单下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param pickingOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean allDistribution(PickingOrderDO pickingOrderDO){
|
||||
//设置作业人员信息
|
||||
operatorsParam(pickingOrderDO);
|
||||
//设置集货库位
|
||||
setStorageLocation(pickingOrderDO);
|
||||
return pickingOrderDomainService.allDistribution(pickingOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 明细下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param pickingOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean detailDistribution(PickingOrderDO pickingOrderDO){
|
||||
//设置作业人员信息
|
||||
operatorsParam(pickingOrderDO);
|
||||
//设置集货库位
|
||||
setStorageLocation(pickingOrderDO);
|
||||
return pickingOrderDomainService.detailDistribution(pickingOrderDO);
|
||||
}
|
||||
/**
|
||||
* @description 拣货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param pickingOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean picking(PickingOrderDO pickingOrderDO){
|
||||
PickingOrderDO assemblePickingOrderDO = assembleParamByPickingOrder(pickingOrderDO);
|
||||
return pickingOrderDomainService.picking(assemblePickingOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 完成拣货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param pickingOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean completePicking(PickingOrderDO pickingOrderDO){
|
||||
return pickingOrderDomainService.completePicking(pickingOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param pickingOrderDO
|
||||
*/
|
||||
private void operatorsParam(PickingOrderDO pickingOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(pickingOrderDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
pickingOrderDO.setOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置集货库位信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param pickingOrderDO
|
||||
*/
|
||||
private void setStorageLocation(PickingOrderDO pickingOrderDO) {
|
||||
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(pickingOrderDO.getStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
|
||||
throw new ServiceException("获取拣货库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
|
||||
pickingOrderDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
|
||||
pickingOrderDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
|
||||
pickingOrderDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
|
||||
pickingOrderDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
|
||||
pickingOrderDO.setStorageCode(storageLocationFeignPO.getStorageCode());
|
||||
pickingOrderDO.setStorageName(storageLocationFeignPO.getStorageName());
|
||||
pickingOrderDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
|
||||
pickingOrderDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
pickingOrderDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 拣货 装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param pickingOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private PickingOrderDO assembleParamByPickingOrder(PickingOrderDO pickingOrderDO) {
|
||||
PickingOrderPO pickingOrderPO = pickingOrderDomainService.getInfoByIdAndType(pickingOrderDO.getPickingOrderId(), pickingOrderDO.getType());
|
||||
if (pickingOrderPO == null){
|
||||
throw new ServiceException("拣货单不存在");
|
||||
}
|
||||
if (pickingOrderPO.getStatus() > 2) {
|
||||
throw new ServiceException("拣货单已完成拣货");
|
||||
}
|
||||
if (CollectionUtil.isEmpty(pickingOrderDO.getMaterialDetailList())) {
|
||||
throw new ServiceException("拣货单物料明细不能为空");
|
||||
}
|
||||
PickingOrderDO returnPickingOrderDO = new PickingOrderDO();
|
||||
returnPickingOrderDO.setUpdateTime(pickingOrderDO.getUpdateTime());
|
||||
returnPickingOrderDO.setPickingOrderId(pickingOrderPO.getPickingOrderId());
|
||||
returnPickingOrderDO.setType(pickingOrderPO.getType());
|
||||
returnPickingOrderDO.setOrganizationId(pickingOrderPO.getOrganizationId());
|
||||
returnPickingOrderDO.setOrganizationName(pickingOrderPO.getOrganizationName());
|
||||
returnPickingOrderDO.setTopOrganizationId(pickingOrderPO.getTopOrganizationId());
|
||||
returnPickingOrderDO.setPickingOrderNumber(pickingOrderPO.getPickingOrderNumber());
|
||||
PickingMaterialDetailDO pickingMaterialDetailDOByQuery = new PickingMaterialDetailDO();
|
||||
pickingMaterialDetailDOByQuery.setPickingOrderNumber(pickingOrderPO.getPickingOrderNumber());
|
||||
List<PickingMaterialDetailPO> pickingMaterialDetailPODbList = pickingMaterialDetailDomainService.queryList(pickingMaterialDetailDOByQuery);
|
||||
Map<Long, PickingMaterialDetailPO> pickingMaterialDetailDbMap = pickingMaterialDetailPODbList.stream().collect(Collectors.toMap(PickingMaterialDetailPO::getMaterialDetailId, Function.identity()));
|
||||
List<PickingMaterialDetailDO> returnPickingMaterialDetailDOList = new ArrayList<>();
|
||||
for (PickingMaterialDetailDO pickingMaterialDetailDO : pickingOrderDO.getMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
PickingMaterialDetailPO pickingMaterialDetailPO = pickingMaterialDetailDbMap.get(pickingMaterialDetailDO.getMaterialDetailId());
|
||||
if (pickingMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (ObjectUtil.isNull(pickingMaterialDetailDO.getActualQuantity()) || pickingMaterialDetailDO.getActualQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行拣货直接跳过
|
||||
continue;
|
||||
}
|
||||
PickingMaterialDetailDO returnPickingMaterialDetailDO = new PickingMaterialDetailDO();
|
||||
BeanUtils.copyProperties(pickingMaterialDetailPO, returnPickingMaterialDetailDO);
|
||||
returnPickingMaterialDetailDO.setActualQuantity(pickingMaterialDetailDO.getActualQuantity());
|
||||
//是否开启了序列号管理
|
||||
if (pickingMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(pickingMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + pickingMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnPickingMaterialDetailDO.setMaterialDetailSerialNumberList(pickingMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnPickingMaterialDetailDOList.add(returnPickingMaterialDetailDO);
|
||||
}
|
||||
returnPickingOrderDO.setMaterialDetailList(returnPickingMaterialDetailDOList);
|
||||
return returnPickingOrderDO;
|
||||
}
|
||||
}
|
||||
+260
@@ -0,0 +1,260 @@
|
||||
package com.mhd.wms.application.service.putawayRule;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.github.pagehelper.util.StringUtil;
|
||||
import com.mhd.common.core.domain.po.SysDictDataVo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.enums.MasterRuleEnum;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.putawayRule.entity.PutawayRule;
|
||||
import com.mhd.wms.domain.putawayRule.repository.po.PutawayRulePO;
|
||||
import com.mhd.wms.domain.putawayRule.repository.todo.PutawayRuleDO;
|
||||
import com.mhd.wms.domain.putawayRule.service.PutawayRuleDomainService;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.entity.PutawayRuleDetail;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.repository.todo.PutawayRuleDetailDO;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.service.PutawayRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 上架规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-19
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PutawayRuleApplicationService {
|
||||
@Autowired
|
||||
private PutawayRuleDomainService putawayRuleDomainService;
|
||||
|
||||
@Resource
|
||||
private PutawayRuleDetailDomainService putawayRuleDetailDomainService;
|
||||
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询上架规则列表
|
||||
*/
|
||||
|
||||
public List<PutawayRulePO> queryList(PutawayRuleDO putawayRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
putawayRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return putawayRuleDomainService.queryList(putawayRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增上架规则
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean insert(PutawayRuleDO putawayRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
putawayRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
PutawayRule putawayRule= putawayRuleDomainService.save(putawayRuleDO);
|
||||
//删除当前上架规则明细
|
||||
putawayRuleDetailDomainService.deleteByPutawayRuleId(putawayRule.getId());
|
||||
|
||||
List<PutawayRuleDetailDO> putawayRuleDetailDOS = putawayRuleDO.getPutawayRuleDetailDOS();
|
||||
|
||||
List<PutawayRuleDetail> putawayRuleDetails = putawayRuleDetailDOS.stream().map(putawayRuleDetailDO -> {
|
||||
PutawayRuleDetail putawayRuleDetail = new PutawayRuleDetail();
|
||||
putawayRuleDetailDO.setMainRule(MasterRuleEnum.ENUM_VALUE1.getDesById(putawayRuleDetailDO.getMainRuleId()));
|
||||
//库位空间数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getStorageSpaceLimitTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.LOCATION_SPACE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位空间)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getStorageSpaceLimitTypeId());
|
||||
String storageSpaceLimitType = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位空间未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setStorageSpaceLimitType(storageSpaceLimitType);
|
||||
}
|
||||
//库位空间数据字典 end
|
||||
|
||||
|
||||
//库位分类数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位分类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationTypeId());
|
||||
String locationType = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位分类未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setLocationType(locationType);
|
||||
}
|
||||
//库位分类数据字典 end
|
||||
//库位种类数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationKindId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位种类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationKindId());
|
||||
String locationKind = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位种类未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setLocationKind(locationKind);
|
||||
}
|
||||
//库位种类数据字典 end
|
||||
BeanUtils.copyProperties(putawayRuleDetailDO, putawayRuleDetail);
|
||||
putawayRuleDetail.setPutawayRuleId(putawayRule.getId());
|
||||
return putawayRuleDetail;
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return putawayRuleDetailDomainService.saveBatch(putawayRuleDetails);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改上架规则
|
||||
*/
|
||||
public Boolean update(PutawayRuleDO putawayRuleDO) {
|
||||
putawayRuleDomainService.update(putawayRuleDO);
|
||||
//删除当前上架规则明细
|
||||
putawayRuleDetailDomainService.deleteByPutawayRuleId(putawayRuleDO.getId());
|
||||
|
||||
List<PutawayRuleDetailDO> putawayRuleDetailDOS = putawayRuleDO.getPutawayRuleDetailDOS();
|
||||
|
||||
List<PutawayRuleDetail> putawayRuleDetails = putawayRuleDetailDOS.stream().map(putawayRuleDetailDO -> {
|
||||
PutawayRuleDetail putawayRuleDetail = new PutawayRuleDetail();
|
||||
|
||||
putawayRuleDetailDO.setMainRule(MasterRuleEnum.ENUM_VALUE1.getDesById(putawayRuleDetailDO.getMainRuleId()));
|
||||
//库位空间数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getStorageSpaceLimitTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.LOCATION_SPACE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位空间)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getStorageSpaceLimitTypeId());
|
||||
String storageSpaceLimitType = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位空间未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setStorageSpaceLimitType(storageSpaceLimitType);
|
||||
}
|
||||
//库位空间数据字典 end
|
||||
|
||||
|
||||
//库位分类数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_CLASSIFICATION.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位分类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationTypeId());
|
||||
String locationType = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位分类未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setLocationType(locationType);
|
||||
}
|
||||
//库位分类数据字典 end
|
||||
//库位种类数据字典 start
|
||||
if(StringUtil.isNotEmpty(putawayRuleDetailDO.getLocationKindId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.STORAGE_LOCATION_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(库位种类)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
List<String> strings1 = Convert.toList(String.class, putawayRuleDetailDO.getLocationKindId());
|
||||
String locationKind = strings1.stream().map(s -> {
|
||||
if (!transportTypeDictMap.containsKey(s)) {
|
||||
throw new ServiceException("库位种类未找到");
|
||||
}
|
||||
return transportTypeDictMap.get(s);
|
||||
}).collect(Collectors.joining(","));
|
||||
|
||||
putawayRuleDetailDO.setLocationKind(locationKind);
|
||||
}
|
||||
//库位种类数据字典 end
|
||||
BeanUtils.copyProperties(putawayRuleDetailDO, putawayRuleDetail);
|
||||
putawayRuleDetail.setPutawayRuleId(putawayRuleDO.getId());
|
||||
return putawayRuleDetail;
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return putawayRuleDetailDomainService.saveBatch(putawayRuleDetails);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除上架规则
|
||||
*/
|
||||
@Transactional
|
||||
public boolean delete(Long[] ids) {
|
||||
putawayRuleDomainService.delete(ids);
|
||||
//
|
||||
List<Long> putawayRleDetailIds = putawayRuleDetailDomainService.selectListByPutawayRuleId(ids);
|
||||
|
||||
|
||||
return putawayRuleDetailDomainService.delete(putawayRleDetailIds.toArray(new Long[putawayRleDetailIds.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架规则详细信息
|
||||
*/
|
||||
public PutawayRulePO getInfo(Long id)
|
||||
{
|
||||
return putawayRuleDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.putawayRuleDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.repository.po.PutawayRuleDetailPO;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.repository.todo.PutawayRuleDetailDO;
|
||||
import com.mhd.wms.domain.putawayRuleDetail.service.PutawayRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 上架规则明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PutawayRuleDetailApplicationService {
|
||||
@Autowired
|
||||
private PutawayRuleDetailDomainService putawayRuleDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询上架规则明细列表
|
||||
*/
|
||||
|
||||
public List<PutawayRuleDetailPO> queryList(PutawayRuleDetailDO putawayRuleDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
putawayRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return putawayRuleDetailDomainService.queryList(putawayRuleDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增上架规则明细
|
||||
*/
|
||||
public Boolean insert(PutawayRuleDetailDO putawayRuleDetailDO) {
|
||||
|
||||
return putawayRuleDetailDomainService.insert(putawayRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改上架规则明细
|
||||
*/
|
||||
public Boolean update(PutawayRuleDetailDO putawayRuleDetailDO) {
|
||||
return putawayRuleDetailDomainService.update(putawayRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除上架规则明细
|
||||
*/
|
||||
public boolean delete(Long[] ids) {
|
||||
return putawayRuleDetailDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架规则明细详细信息
|
||||
*/
|
||||
public PutawayRuleDetailPO getInfo(Long id)
|
||||
{
|
||||
return putawayRuleDetailDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
package com.mhd.wms.application.service.qcRule;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.github.pagehelper.util.StringUtil;
|
||||
import com.mhd.common.core.domain.po.SysDictDataVo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.qcRule.repository.po.QcRulePO;
|
||||
import com.mhd.wms.domain.qcRule.repository.todo.QcRuleDO;
|
||||
import com.mhd.wms.domain.qcRule.service.QcRuleDomainService;
|
||||
import com.mhd.wms.domain.qcRuleDetail.repository.po.QcRuleDetailPO;
|
||||
import com.mhd.wms.domain.qcRuleDetail.repository.todo.QcRuleDetailDO;
|
||||
import com.mhd.wms.domain.qcRuleDetail.service.QcRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 质检规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class QcRuleApplicationService {
|
||||
@Autowired
|
||||
private QcRuleDomainService qcRuleDomainService;
|
||||
|
||||
@Resource
|
||||
private QcRuleDetailDomainService qcRuleDetailDomainService;
|
||||
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询质检规则列表
|
||||
*/
|
||||
|
||||
public List<QcRulePO> queryList(QcRuleDO qcRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
qcRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return qcRuleDomainService.queryList(qcRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增质检规则
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean insert(QcRuleDO qcRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
qcRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
|
||||
Long id = qcRuleDomainService.insertToId(qcRuleDO);
|
||||
//根据ID查询质检规则明细
|
||||
Long[] ids = qcRuleDetailDomainService.selectIdsByQcRuleId(id);
|
||||
//删除质检规则明细ID
|
||||
qcRuleDetailDomainService.delete(ids);
|
||||
List<QcRuleDetailDO> qcRuleDetailDOS = qcRuleDO.getQcRuleDetailDOS();
|
||||
qcRuleDetailDOS.stream().forEach(qcRuleDetailDO -> {
|
||||
if(StringUtil.isNotEmpty(qcRuleDetailDO.getNumTypeId())){
|
||||
AjaxResult transportTypeDict = systemServiceFeign.selectListByDictType(DictCode.NUM_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(transportTypeDict.get("code")))) {
|
||||
throw new ServiceException("字典信息(数量类型)获取失败");
|
||||
}
|
||||
List<SysDictDataVo> transportTypeDictList = JSONUtil.toList(JSONUtil.toJsonStr(transportTypeDict.get("data")), SysDictDataVo.class);
|
||||
Map<String, String> transportTypeDictMap = transportTypeDictList.stream().collect(Collectors.toMap(SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel));
|
||||
if (!transportTypeDictMap.containsKey(qcRuleDetailDO.getNumTypeId())) {
|
||||
throw new ServiceException("数量类型未找到");
|
||||
}
|
||||
qcRuleDetailDO.setNumType(transportTypeDictMap.get(qcRuleDetailDO.getNumTypeId()));
|
||||
}
|
||||
qcRuleDetailDO.setQcRuleId(id);
|
||||
});
|
||||
return qcRuleDetailDomainService.batchInsert(qcRuleDetailDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改质检规则
|
||||
*/
|
||||
@Transactional
|
||||
public Boolean update(QcRuleDO qcRuleDO) {
|
||||
qcRuleDomainService.update(qcRuleDO);
|
||||
//根据ID查询质检规则明细
|
||||
Long[] ids = qcRuleDetailDomainService.selectIdsByQcRuleId(qcRuleDO.getId());
|
||||
//删除质检规则明细ID
|
||||
qcRuleDetailDomainService.delete(ids);
|
||||
List<QcRuleDetailDO> qcRuleDetailDOS = qcRuleDO.getQcRuleDetailDOS();
|
||||
qcRuleDetailDOS.stream().forEach(qcRuleDetailDO -> {
|
||||
qcRuleDetailDO.setQcRuleId(qcRuleDO.getId());
|
||||
});
|
||||
return qcRuleDetailDomainService.batchInsert(qcRuleDetailDOS);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除质检规则
|
||||
*/
|
||||
@Transactional
|
||||
public boolean delete(Long[] ids) {
|
||||
qcRuleDomainService.delete(ids);
|
||||
//根据质检规则ID集合查询所有的质检规则明细
|
||||
Long[] qcRuleDetailIds = qcRuleDetailDomainService.selectListByQcRuleIds(ids);
|
||||
return qcRuleDetailDomainService.delete(qcRuleDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取质检规则详细信息
|
||||
*/
|
||||
public QcRulePO getInfo(Long id)
|
||||
{
|
||||
QcRulePO qcRulePO = qcRuleDomainService.getInfo(id);
|
||||
List<QcRuleDetailPO> qcRuleDetailPOS = qcRuleDetailDomainService.selectListByQcRuleId(id);
|
||||
qcRulePO.setQcRuleDetailList(qcRuleDetailPOS);
|
||||
return qcRulePO;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.qcRuleDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.qcRuleDetail.repository.po.QcRuleDetailPO;
|
||||
import com.mhd.wms.domain.qcRuleDetail.repository.todo.QcRuleDetailDO;
|
||||
import com.mhd.wms.domain.qcRuleDetail.service.QcRuleDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 质检规则明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class QcRuleDetailApplicationService {
|
||||
@Autowired
|
||||
private QcRuleDetailDomainService qcRuleDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询质检规则明细列表
|
||||
*/
|
||||
|
||||
public List<QcRuleDetailPO> queryList(QcRuleDetailDO qcRuleDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
qcRuleDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return qcRuleDetailDomainService.queryList(qcRuleDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增质检规则明细
|
||||
*/
|
||||
public Boolean insert(QcRuleDetailDO qcRuleDetailDO) {
|
||||
|
||||
return qcRuleDetailDomainService.insert(qcRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改质检规则明细
|
||||
*/
|
||||
public Boolean update(QcRuleDetailDO qcRuleDetailDO) {
|
||||
return qcRuleDetailDomainService.update(qcRuleDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除质检规则明细
|
||||
*/
|
||||
public boolean delete(Long[] ids) {
|
||||
return qcRuleDetailDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取质检规则明细详细信息
|
||||
*/
|
||||
public QcRuleDetailPO getInfo(Long id)
|
||||
{
|
||||
return qcRuleDetailDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.wms.application.service.qualityInspection;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.qualityInspection.repository.po.QualityInspectionPO;
|
||||
import com.mhd.wms.domain.qualityInspection.repository.todo.QualityInspectionDO;
|
||||
import com.mhd.wms.domain.qualityInspection.service.QualityInspectionDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 质检管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-25
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class QualityInspectionApplicationService {
|
||||
@Autowired
|
||||
private QualityInspectionDomainService qualityInspectionDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询质检管理列表
|
||||
*/
|
||||
|
||||
public List<QualityInspectionPO> queryList(QualityInspectionDO qualityInspectionDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
qualityInspectionDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
qualityInspectionDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return qualityInspectionDomainService.queryList(qualityInspectionDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增质检管理
|
||||
*/
|
||||
public Boolean insert(QualityInspectionDO qualityInspectionDO) {
|
||||
|
||||
return qualityInspectionDomainService.insert(qualityInspectionDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改质检管理
|
||||
*/
|
||||
public Boolean update(QualityInspectionDO qualityInspectionDO) {
|
||||
return qualityInspectionDomainService.update(qualityInspectionDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除质检管理
|
||||
*/
|
||||
public boolean delete(Long[] qualityInspectionIds) {
|
||||
return qualityInspectionDomainService.delete(qualityInspectionIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取质检管理详细信息
|
||||
*/
|
||||
public QualityInspectionPO getInfo(Long qualityInspectionId)
|
||||
{
|
||||
return qualityInspectionDomainService.getInfo(qualityInspectionId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.mhd.wms.application.service.receiptMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-17
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ReceiptMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private ReceiptMaterialDetailDomainService receiptMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料明细列表
|
||||
*/
|
||||
|
||||
public List<ReceiptMaterialDetailPO> queryList(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
receiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return receiptMaterialDetailDomainService.queryList(receiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物料明细
|
||||
*/
|
||||
public Boolean insert(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
|
||||
|
||||
return receiptMaterialDetailDomainService.insert(receiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料明细
|
||||
*/
|
||||
public Boolean update(ReceiptMaterialDetailDO receiptMaterialDetailDO) {
|
||||
return receiptMaterialDetailDomainService.update(receiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料明细
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailIds) {
|
||||
return receiptMaterialDetailDomainService.delete(materialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料明细详细信息
|
||||
*/
|
||||
public ReceiptMaterialDetailPO getInfo(Long materialDetailId)
|
||||
{
|
||||
return receiptMaterialDetailDomainService.getInfo(materialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.wms.application.service.replenishmentNotice;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.replenishmentNotice.repository.po.ReplenishmentNoticePO;
|
||||
import com.mhd.wms.domain.replenishmentNotice.repository.todo.ReplenishmentNoticeDO;
|
||||
import com.mhd.wms.domain.replenishmentNotice.service.ReplenishmentNoticeDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 补货通知单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-11
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ReplenishmentNoticeApplicationService {
|
||||
@Autowired
|
||||
private ReplenishmentNoticeDomainService replenishmentNoticeDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询补货通知单列表
|
||||
*/
|
||||
|
||||
public List<ReplenishmentNoticePO> queryList(ReplenishmentNoticeDO replenishmentNoticeDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
replenishmentNoticeDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
replenishmentNoticeDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return replenishmentNoticeDomainService.queryList(replenishmentNoticeDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增补货通知单
|
||||
*/
|
||||
public Boolean insert(ReplenishmentNoticeDO replenishmentNoticeDO) {
|
||||
|
||||
return replenishmentNoticeDomainService.insert(replenishmentNoticeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改补货通知单
|
||||
*/
|
||||
public Boolean update(ReplenishmentNoticeDO replenishmentNoticeDO) {
|
||||
return replenishmentNoticeDomainService.update(replenishmentNoticeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除补货通知单
|
||||
*/
|
||||
public boolean delete(Long[] replenishmentNoticeIds) {
|
||||
return replenishmentNoticeDomainService.delete(replenishmentNoticeIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取补货通知单详细信息
|
||||
*/
|
||||
public ReplenishmentNoticePO getInfo(Long replenishmentNoticeId)
|
||||
{
|
||||
return replenishmentNoticeDomainService.getInfo(replenishmentNoticeId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
package com.mhd.wms.application.service.serialNumber;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.serialNumber.repository.po.SerialNumberPO;
|
||||
import com.mhd.wms.domain.serialNumber.repository.todo.SerialNumberDO;
|
||||
import com.mhd.wms.domain.serialNumber.service.SerialNumberDomainService;
|
||||
import com.mhd.wms.interfaces.dto.serialNumber.SerialNumberDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 序列号ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-19
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SerialNumberApplicationService {
|
||||
@Autowired
|
||||
private SerialNumberDomainService serialNumberDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询序列号列表
|
||||
*/
|
||||
|
||||
public List<SerialNumberPO> queryList(SerialNumberDO serialNumberDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
serialNumberDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
serialNumberDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return serialNumberDomainService.queryList(serialNumberDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增序列号
|
||||
*/
|
||||
public Boolean insert(SerialNumberDO serialNumberDO) {
|
||||
|
||||
return serialNumberDomainService.insert(serialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改序列号
|
||||
*/
|
||||
public Boolean update(SerialNumberDO serialNumberDO) {
|
||||
return serialNumberDomainService.update(serialNumberDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除序列号
|
||||
*/
|
||||
public boolean delete(Long[] serialNumberIds) {
|
||||
return serialNumberDomainService.delete(serialNumberIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取序列号详细信息
|
||||
*/
|
||||
public SerialNumberPO getInfo(Long serialNumberId)
|
||||
{
|
||||
return serialNumberDomainService.getInfo(serialNumberId);
|
||||
}
|
||||
|
||||
public Boolean validationForPicking(SerialNumberDTO serialNumberDTO) {
|
||||
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
||||
serialNumberDO.setSerialNumber(serialNumberDTO.getSerialNumber());
|
||||
serialNumberDO.setMaterialBaseInfoId(serialNumberDTO.getMaterialBaseInfoId());
|
||||
serialNumberDO.setStatus(1);
|
||||
List<SerialNumberPO> serialNumberPos = serialNumberDomainService.queryList(serialNumberDO);
|
||||
if (CollectionUtil.isEmpty(serialNumberPos)){
|
||||
throw new RuntimeException("序列号不存在");
|
||||
}else if (serialNumberPos.size() >1) {
|
||||
throw new RuntimeException("数据错误:系统内存在多个相同序列号");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.shelfMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-17
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShelfMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private ShelfMaterialDetailDomainService shelfMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物料明细列表
|
||||
*/
|
||||
|
||||
public List<ShelfMaterialDetailPO> queryList(ShelfMaterialDetailDO shelfMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
shelfMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return shelfMaterialDetailDomainService.queryList(shelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物料明细
|
||||
*/
|
||||
public Boolean insert(ShelfMaterialDetailDO shelfMaterialDetailDO) {
|
||||
|
||||
return shelfMaterialDetailDomainService.insert(shelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物料明细
|
||||
*/
|
||||
public Boolean update(ShelfMaterialDetailDO shelfMaterialDetailDO) {
|
||||
return shelfMaterialDetailDomainService.update(shelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物料明细
|
||||
*/
|
||||
public boolean delete(Long[] shelfMaterialDetailIds) {
|
||||
return shelfMaterialDetailDomainService.delete(shelfMaterialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物料明细详细信息
|
||||
*/
|
||||
public ShelfMaterialDetailPO getInfo(Long shelfMaterialDetailId)
|
||||
{
|
||||
return shelfMaterialDetailDomainService.getInfo(shelfMaterialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+436
@@ -0,0 +1,436 @@
|
||||
package com.mhd.wms.application.service.shiftManage;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.ContainerFeignPO;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.shiftManage.repository.po.ShiftManagePO;
|
||||
import com.mhd.wms.domain.shiftManage.repository.todo.ContainerShiftDO;
|
||||
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
|
||||
import com.mhd.wms.domain.shiftManage.service.ShiftManageDomainService;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMaterialDetailPO;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMoveMaterialQuantityPO;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.service.ShiftMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 移位管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-02
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShiftManageApplicationService {
|
||||
@Autowired
|
||||
private ShiftManageDomainService shiftManageDomainService;
|
||||
@Autowired
|
||||
private ShiftMaterialDetailDomainService shiftMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
/**
|
||||
* 分页查询移位管理列表
|
||||
*/
|
||||
|
||||
public List<ShiftManagePO> queryList(ShiftManageDO shiftManageDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
shiftManageDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
shiftManageDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return shiftManageDomainService.queryList(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description app 获取移位详情
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:20
|
||||
* @param ShiftManageId
|
||||
* @return ShiftManagePO
|
||||
*/
|
||||
public ShiftManagePO getInfoByApp(Long ShiftManageId) {
|
||||
return shiftManageDomainService.getInfoByApp(ShiftManageId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增移位管理
|
||||
*/
|
||||
public Boolean insert(ShiftManageDO shiftManageDO) {
|
||||
//设置仓库
|
||||
setWarehouseInfo(shiftManageDO);
|
||||
return shiftManageDomainService.insert(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改移位管理
|
||||
*/
|
||||
public Boolean update(ShiftManageDO shiftManageDO) {
|
||||
return shiftManageDomainService.update(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除移位管理
|
||||
*/
|
||||
public boolean delete(Long[] shiftManageIds) {
|
||||
return shiftManageDomainService.delete(shiftManageIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取移位管理详细信息
|
||||
*/
|
||||
public ShiftManagePO getInfo(Long shiftManageId)
|
||||
{
|
||||
return shiftManageDomainService.getInfo(shiftManageId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 审核
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:47
|
||||
* @param shiftManageDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean auditState(ShiftManageDO shiftManageDO){
|
||||
return shiftManageDomainService.auditState(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 任务下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:47
|
||||
* @param shiftManageDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean taskDistribution(ShiftManageDO shiftManageDO){
|
||||
// 设置作业员信息
|
||||
operatorsParam(shiftManageDO);
|
||||
return shiftManageDomainService.taskDistribution(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 物料移位
|
||||
*/
|
||||
public Boolean appMoveFromShiftManage(ShiftManageDO shiftManageDO){
|
||||
List<ShiftMaterialDetailDO> shiftMaterialDetailDOList = shiftManageDO.getShiftMaterialDetailList();
|
||||
shiftMaterialDetailDOList.forEach(shiftMaterialDetailDO -> {
|
||||
List<ShiftMaterialDetailDO> shiftMaterialDetailDOChildrenList1 = shiftMaterialDetailDO.getChildren();
|
||||
ShiftMaterialDetailDO shiftMaterialDetailDOChildren = shiftMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
|
||||
shiftMaterialDetailDO.setShiftIoDetailId(shiftMaterialDetailDOChildren.getShiftIoDetailId());
|
||||
shiftMaterialDetailDO.setShiftQuantity(shiftMaterialDetailDOChildren.getShiftQuantity());
|
||||
shiftMaterialDetailDO.setNewWarehouseId(shiftMaterialDetailDOChildren.getNewWarehouseId());
|
||||
shiftMaterialDetailDO.setNewStorageSectionId(shiftMaterialDetailDOChildren.getNewStorageSectionId());
|
||||
shiftMaterialDetailDO.setNewStorageLocationId(shiftMaterialDetailDOChildren.getNewStorageLocationId());
|
||||
shiftMaterialDetailDO.setContainerId(shiftMaterialDetailDOChildren.getContainerId());
|
||||
shiftMaterialDetailDO.setLevel(shiftMaterialDetailDOChildren.getLevel());
|
||||
shiftMaterialDetailDO.setMaterialDetailSerialNumberList(shiftMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
|
||||
//只留二级
|
||||
List<ShiftMaterialDetailDO> shiftMaterialDetailDOChildrenList2 = shiftMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
|
||||
shiftMaterialDetailDO.setChildren(shiftMaterialDetailDOChildrenList2);
|
||||
});
|
||||
//移位装配参数
|
||||
ShiftManageDO assembleShiftManageDO = assembleParamByShift(shiftManageDO);
|
||||
return shiftManageDomainService.appMoveFromShiftManage(assembleShiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description PC 完成移位
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:51
|
||||
* @param shiftManageDO
|
||||
* @return Map<String>
|
||||
*/
|
||||
public Boolean finishShiftByPC(ShiftManageDO shiftManageDO){
|
||||
//移位装配参数
|
||||
ShiftManageDO assembleShiftManageDO = assembleParamByShift(shiftManageDO);
|
||||
return shiftManageDomainService.finishShiftByPC(assembleShiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description PDA 完成移位
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:51
|
||||
* @param shiftManageDO
|
||||
* @return Map<String>
|
||||
*/
|
||||
public Boolean finishShift(ShiftManageDO shiftManageDO){
|
||||
return shiftManageDomainService.finishShift(shiftManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description app 容器移位
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/30 14:24
|
||||
* @param containerShiftDOList
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean appMoveContainShift(List<ContainerShiftDO> containerShiftDOList){
|
||||
//设置上架库位、容器信息
|
||||
setStorageLocationInfoByContainer(containerShiftDOList);
|
||||
return shiftManageDomainService.appMoveContainShift(containerShiftDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 移位装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param shiftManageDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private ShiftManageDO assembleParamByShift(ShiftManageDO shiftManageDO) {
|
||||
ShiftManagePO shiftManagePO = shiftManageDomainService.getInfo(shiftManageDO.getShiftManageId());
|
||||
if (shiftManagePO == null){
|
||||
throw new ServiceException("移位单不存在");
|
||||
}
|
||||
if (shiftManagePO.getShiftStatus() > 3) {
|
||||
throw new ServiceException("移位单已完成移位");
|
||||
}
|
||||
ShiftManageDO returnShiftManageDO = new ShiftManageDO();
|
||||
returnShiftManageDO.setUpdateTime(shiftManagePO.getUpdateTime());
|
||||
returnShiftManageDO.setShiftManageId(shiftManagePO.getShiftManageId());
|
||||
returnShiftManageDO.setOrganizationId(shiftManagePO.getOrganizationId());
|
||||
returnShiftManageDO.setOrganizationName(shiftManagePO.getOrganizationName());
|
||||
returnShiftManageDO.setTopOrganizationId(shiftManagePO.getTopOrganizationId());
|
||||
returnShiftManageDO.setShiftNumber(shiftManagePO.getShiftNumber());
|
||||
ShiftMaterialDetailDO shiftMaterialDetailDOByQuery = new ShiftMaterialDetailDO();
|
||||
shiftMaterialDetailDOByQuery.setShiftNumber(shiftManagePO.getShiftNumber());
|
||||
List<ShiftMaterialDetailPO> shiftMaterialDetailPODbList = shiftMaterialDetailDomainService.queryList(shiftMaterialDetailDOByQuery);
|
||||
Map<Long, ShiftMaterialDetailPO> shiftMaterialDetailPODbMap = shiftMaterialDetailPODbList.stream().collect(Collectors.toMap(ShiftMaterialDetailPO::getShiftIoDetailId, Function.identity()));
|
||||
BigDecimal totalShiftQuantity = BigDecimal.ZERO;//移位单当前作业收货数
|
||||
int totalActualReceiptMaterialQuantity = 0;//移位单收货物料种数
|
||||
List<ShiftMaterialDetailDO> returnShiftMaterialDetailDOList = new ArrayList<>();
|
||||
for (ShiftMaterialDetailDO shiftMaterialDetailDO : shiftManageDO.getShiftMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
ShiftMaterialDetailPO shiftMaterialDetailPO = shiftMaterialDetailPODbMap.get(shiftMaterialDetailDO.getShiftIoDetailId());
|
||||
if (shiftMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (shiftMaterialDetailDO.getShiftQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行移位直接跳过
|
||||
continue;
|
||||
}
|
||||
if (shiftMaterialDetailPO.getShiftStatus() == 4){
|
||||
//已完成移位的物料不再支持修改
|
||||
continue;
|
||||
}
|
||||
//设置上架库位、容器信息
|
||||
setStorageLocationInfo(shiftMaterialDetailDO);
|
||||
BigDecimal shiftQuantity = shiftMaterialDetailDO.getShiftQuantity();;//当前作业移位数
|
||||
//判断是否存在子项
|
||||
List<ShiftMaterialDetailDO> returnShiftMaterialDetailDOChildList = new ArrayList<>();
|
||||
List<ShiftMaterialDetailDO> shiftMaterialDetailDOChildList = shiftMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(shiftMaterialDetailDOChildList)){
|
||||
for (ShiftMaterialDetailDO shiftMaterialDetailDOChild : shiftMaterialDetailDOChildList){
|
||||
ShiftMaterialDetailDO returnShiftMaterialDetailDOChild = new ShiftMaterialDetailDO();
|
||||
ShiftMaterialDetailPO shiftMaterialDetailPOChildDb = shiftMaterialDetailPODbMap.get(shiftMaterialDetailDOChild.getShiftIoDetailId());
|
||||
if (shiftMaterialDetailPOChildDb == null){
|
||||
BeanUtils.copyProperties(shiftMaterialDetailPO, returnShiftMaterialDetailDOChild, "shiftIoDetailId","createBy","createByName","createTime",
|
||||
"updateBy","updateByName","updateTime");
|
||||
}else {
|
||||
BeanUtils.copyProperties(shiftMaterialDetailPOChildDb, returnShiftMaterialDetailDOChild, "shiftIoDetailId","createBy","createByName","createTime",
|
||||
"updateBy","updateByName","updateTime");
|
||||
}
|
||||
BeanUtils.copyProperties(shiftMaterialDetailDOChild, returnShiftMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(shiftMaterialDetailDOChild));
|
||||
//设置上架库位、容器信息
|
||||
setStorageLocationInfo(returnShiftMaterialDetailDOChild);
|
||||
if (ObjectUtil.isNotNull(returnShiftMaterialDetailDOChild.getShiftIoDetailId()) && returnShiftMaterialDetailDOChild.getShiftIoDetailId() == 0){
|
||||
returnShiftMaterialDetailDOChild.setShiftIoDetailId(null);
|
||||
}
|
||||
returnShiftMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
returnShiftMaterialDetailDOChild.setLevel(2);
|
||||
returnShiftMaterialDetailDOChild.setParentUniqueId(shiftMaterialDetailPO.getUniqueId());
|
||||
//是否开启了序列号管理
|
||||
if (shiftMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(shiftMaterialDetailDOChild.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + shiftMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnShiftMaterialDetailDOChild.setMaterialDetailSerialNumberList(returnShiftMaterialDetailDOChild.getMaterialDetailSerialNumberList());
|
||||
returnShiftMaterialDetailDOChildList.add(returnShiftMaterialDetailDOChild);
|
||||
shiftQuantity = shiftQuantity.add(returnShiftMaterialDetailDOChild.getShiftQuantity());
|
||||
}
|
||||
}
|
||||
//记录移位单移位总数
|
||||
totalShiftQuantity = totalShiftQuantity.add(shiftQuantity);
|
||||
//物料总移位数量
|
||||
shiftMaterialDetailDO.setAlreadyShiftQuantity(shiftQuantity);
|
||||
//判断移位数量是否大于计划数量
|
||||
Integer shiftStatus = judgeShiftQuantity(shiftQuantity, shiftMaterialDetailPO.getQuantity());
|
||||
shiftMaterialDetailDO.setShiftStatus(shiftStatus);
|
||||
if (shiftStatus > 3){
|
||||
totalActualReceiptMaterialQuantity += 1;
|
||||
}
|
||||
ShiftMaterialDetailDO returnShiftMaterialDetailDO = new ShiftMaterialDetailDO();
|
||||
BeanUtils.copyProperties(shiftMaterialDetailPO, returnShiftMaterialDetailDO);
|
||||
BeanUtils.copyProperties(shiftMaterialDetailDO, returnShiftMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(shiftMaterialDetailDO));
|
||||
//一级列表 首次收货
|
||||
//是否开启了序列号管理
|
||||
if (shiftMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(shiftMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + shiftMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnShiftMaterialDetailDO.setMaterialDetailSerialNumberList(shiftMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnShiftMaterialDetailDO.setChildren(returnShiftMaterialDetailDOChildList);
|
||||
returnShiftMaterialDetailDOList.add(returnShiftMaterialDetailDO);
|
||||
}
|
||||
returnShiftManageDO.setShiftQuantity(totalShiftQuantity);
|
||||
returnShiftManageDO.setShiftMaterialDetailList(returnShiftMaterialDetailDOList);
|
||||
returnShiftManageDO.setShiftMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
return returnShiftManageDO;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param shiftManageDO
|
||||
*/
|
||||
private void operatorsParam(ShiftManageDO shiftManageDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(shiftManageDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
shiftManageDO.setOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param shiftManageDO
|
||||
*/
|
||||
private void setWarehouseInfo(ShiftManageDO shiftManageDO) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(shiftManageDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
shiftManageDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
shiftManageDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置上架库位、容器信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param shiftMaterialDetailDO
|
||||
*/
|
||||
private void setStorageLocationInfo(ShiftMaterialDetailDO shiftMaterialDetailDO){
|
||||
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shiftMaterialDetailDO.getNewStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
|
||||
throw new ServiceException("获取上架库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
|
||||
shiftMaterialDetailDO.setNewStorageSectionId(storageLocationFeignPO.getStorageSectionId());
|
||||
shiftMaterialDetailDO.setNewStorageCode(storageLocationFeignPO.getStorageCode());
|
||||
shiftMaterialDetailDO.setNewStorageName(storageLocationFeignPO.getStorageName());
|
||||
shiftMaterialDetailDO.setNewStorageLocationId(storageLocationFeignPO.getStorageLocationId());
|
||||
shiftMaterialDetailDO.setNewStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
shiftMaterialDetailDO.setNewStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
|
||||
//获取容器详情
|
||||
AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shiftMaterialDetailDO.getContainerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取容器信息失败");
|
||||
}
|
||||
ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
shiftMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
shiftMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
|
||||
shiftMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置上架库位、容器信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param containerShiftDOList
|
||||
*/
|
||||
private void setStorageLocationInfoByContainer(List<ContainerShiftDO> containerShiftDOList){
|
||||
for (ContainerShiftDO containerShiftDO : containerShiftDOList){
|
||||
List<ShiftMoveMaterialQuantityPO> shiftMoveMaterialQuantityList = containerShiftDO.getChildren();
|
||||
if (CollectionUtils.isEmpty(shiftMoveMaterialQuantityList)){
|
||||
continue;
|
||||
}
|
||||
shiftMoveMaterialQuantityList.forEach(shiftMoveMaterialQuantityPO -> {
|
||||
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shiftMoveMaterialQuantityPO.getNewStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
|
||||
throw new ServiceException("获取上架库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
|
||||
shiftMoveMaterialQuantityPO.setNewStorageSectionId(storageLocationFeignPO.getStorageSectionId());
|
||||
shiftMoveMaterialQuantityPO.setNewStorageCode(storageLocationFeignPO.getStorageCode());
|
||||
shiftMoveMaterialQuantityPO.setNewStorageName(storageLocationFeignPO.getStorageName());
|
||||
shiftMoveMaterialQuantityPO.setNewStorageLocationId(storageLocationFeignPO.getStorageLocationId());
|
||||
shiftMoveMaterialQuantityPO.setNewStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
shiftMoveMaterialQuantityPO.setNewStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
|
||||
//获取容器详情
|
||||
AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shiftMoveMaterialQuantityPO.getContainerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取容器信息失败");
|
||||
}
|
||||
ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
shiftMoveMaterialQuantityPO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
shiftMoveMaterialQuantityPO.setContainerType(containerFeignPO.getContainerType());
|
||||
shiftMoveMaterialQuantityPO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 判断移位数量是否与计划数量相等
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/14 17:50
|
||||
* @param quantity
|
||||
* @param shiftQuantity
|
||||
* @return Integer
|
||||
*/
|
||||
private Integer judgeShiftQuantity(BigDecimal shiftQuantity, BigDecimal quantity){
|
||||
if (shiftQuantity.compareTo(quantity) > 0){
|
||||
throw new ServiceException("移位数量不能大于计划数量");
|
||||
} else if (shiftQuantity.compareTo(quantity) == 0) {
|
||||
return 4;
|
||||
} else {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
package com.mhd.wms.application.service.shiftMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.po.ShiftMaterialDetailPO;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.repository.todo.ShiftMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shiftMaterialDetail.service.ShiftMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 移位物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-02
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ShiftMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private ShiftMaterialDetailDomainService shiftMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
/**
|
||||
* 分页查询移位物料明细列表
|
||||
*/
|
||||
public List<ShiftMaterialDetailPO> queryList(ShiftMaterialDetailDO shiftMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
shiftMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return shiftMaterialDetailDomainService.queryList(shiftMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询分组移位物料明细列表
|
||||
*/
|
||||
public List<ShiftMaterialDetailPO> queryGroupList(ShiftMaterialDetailDO shiftMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null) {
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1) {
|
||||
shiftMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return shiftMaterialDetailDomainService.queryGroupList(shiftMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增移位物料明细
|
||||
*/
|
||||
public Boolean insert(ShiftMaterialDetailDO shiftMaterialDetailDO) {
|
||||
return shiftMaterialDetailDomainService.insert(shiftMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改移位物料明细
|
||||
*/
|
||||
public Boolean update(ShiftMaterialDetailDO shiftMaterialDetailDO) {
|
||||
return shiftMaterialDetailDomainService.update(shiftMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除移位物料明细
|
||||
*/
|
||||
public boolean delete(Long[] shiftIoDetailIds) {
|
||||
return shiftMaterialDetailDomainService.delete(shiftIoDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取移位物料明细详细信息
|
||||
*/
|
||||
public ShiftMaterialDetailPO getInfo(Long shiftIoDetailId) {
|
||||
return shiftMaterialDetailDomainService.getInfo(shiftIoDetailId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 物料移位
|
||||
*/
|
||||
|
||||
public ShiftMaterialDetailPO getShiftMaterialDetail(ShiftMaterialDetailDO shiftMaterialDetailDO) {
|
||||
return shiftMaterialDetailDomainService.getShiftMaterialDetail(shiftMaterialDetailDO);
|
||||
}
|
||||
|
||||
}
|
||||
+165
@@ -0,0 +1,165 @@
|
||||
package com.mhd.wms.application.service.sowingDistributionDetails;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.StorageSectionFeignPO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.sowingDistributionDetails.repository.po.SowingDistributionDetailsPO;
|
||||
import com.mhd.wms.domain.sowingDistributionDetails.repository.todo.SowingDistributionDetailsDO;
|
||||
import com.mhd.wms.domain.sowingDistributionDetails.service.SowingDistributionDetailsDomainService;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.todo.AllocationByOrderDO;
|
||||
import com.mhd.wms.domain.waveOrder.repository.todo.AllocationSowingWallDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 播种分货明细表ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-05
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SowingDistributionDetailsApplicationService {
|
||||
@Autowired
|
||||
private SowingDistributionDetailsDomainService sowingDistributionDetailsDomainService;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询播种分货明细表列表
|
||||
*/
|
||||
|
||||
public List<SowingDistributionDetailsPO> queryList(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
sowingDistributionDetailsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return sowingDistributionDetailsDomainService.queryList(sowingDistributionDetailsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增播种分货明细表
|
||||
*/
|
||||
public Boolean insert(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
|
||||
|
||||
return sowingDistributionDetailsDomainService.insert(sowingDistributionDetailsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改播种分货明细表
|
||||
*/
|
||||
public Boolean update(SowingDistributionDetailsDO sowingDistributionDetailsDO) {
|
||||
return sowingDistributionDetailsDomainService.update(sowingDistributionDetailsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除播种分货明细表
|
||||
*/
|
||||
public boolean delete(Long[] waveOutOrderRelevanceIds) {
|
||||
return sowingDistributionDetailsDomainService.delete(waveOutOrderRelevanceIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取播种分货明细表详细信息
|
||||
*/
|
||||
public SowingDistributionDetailsPO getInfo(Long waveOutOrderRelevanceId)
|
||||
{
|
||||
return sowingDistributionDetailsDomainService.getInfo(waveOutOrderRelevanceId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 播种分单
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/6 14:43
|
||||
* @param allocationSowingWallDO
|
||||
* @return List<WaveOutOrderRelevancePO>
|
||||
*/
|
||||
public List<SowingDistributionDetailsPO> allocationSowingWall(AllocationSowingWallDO allocationSowingWallDO){
|
||||
return sowingDistributionDetailsDomainService.allocationSowingWall(allocationSowingWallDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 物料扫码 将物料分配至对应的播种墙
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/6 16:16
|
||||
* @param allocationSowingWallDO
|
||||
* @return WaveOutOrderRelevancePO
|
||||
*/
|
||||
public SowingDistributionDetailsPO materialScanCodeAllocationSowing(AllocationSowingWallDO allocationSowingWallDO){
|
||||
return sowingDistributionDetailsDomainService.materialScanCodeAllocationSowing(allocationSowingWallDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 按单分货
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/6 14:43
|
||||
* @param allocationByOrderDO
|
||||
* @return List<WaveOutOrderRelevancePO>
|
||||
*/
|
||||
public List<SowingDistributionDetailsPO> allocationByOrder(AllocationByOrderDO allocationByOrderDO){
|
||||
return sowingDistributionDetailsDomainService.allocationByOrder(allocationByOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 物料扫码 将物料分配至对应的出库单物料明细
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/6 16:16
|
||||
* @param allocationByOrderDO
|
||||
* @return WaveOutOrderRelevancePO
|
||||
*/
|
||||
public SowingDistributionDetailsPO materialScanCodeAllocationByOrder(AllocationByOrderDO allocationByOrderDO){
|
||||
//封装集货库区信息
|
||||
storageSectionParam(allocationByOrderDO);
|
||||
//封装上架库区信息
|
||||
storageLocationParam(allocationByOrderDO);
|
||||
return sowingDistributionDetailsDomainService.materialScanCodeAllocationByOrder(allocationByOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装集货库区信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/10 20:28
|
||||
* @param allocationByOrderDO
|
||||
*/
|
||||
private void storageSectionParam(AllocationByOrderDO allocationByOrderDO){
|
||||
AjaxResult ajaxResult = systemServiceFeign.getStorageSectionInfoByStorageSectionId(allocationByOrderDO.getStorageSectionId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取集货库区信息失败");
|
||||
}
|
||||
StorageSectionFeignPO storageSectionFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), StorageSectionFeignPO.class);
|
||||
allocationByOrderDO.setStorageCode(storageSectionFeignPO.getStorageCode());
|
||||
allocationByOrderDO.setStorageName(storageSectionFeignPO.getStorageName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装集货库位信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/10 20:28
|
||||
* @param allocationByOrderDO
|
||||
*/
|
||||
private void storageLocationParam(AllocationByOrderDO allocationByOrderDO){
|
||||
AjaxResult ajaxResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(allocationByOrderDO.getStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取集货库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), StorageLocationFeignPO.class);
|
||||
allocationByOrderDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
allocationByOrderDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
}
|
||||
|
||||
}
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
package com.mhd.wms.application.service.sowingWall;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.sowingWall.repository.po.SowingWallPO;
|
||||
import com.mhd.wms.domain.sowingWall.repository.todo.SowingWallDO;
|
||||
import com.mhd.wms.domain.sowingWall.service.SowingWallDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 播种墙管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SowingWallApplicationService {
|
||||
@Autowired
|
||||
private SowingWallDomainService sowingWallDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询播种墙管理列表
|
||||
*/
|
||||
|
||||
public List<SowingWallPO> queryList(SowingWallDO sowingWallDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
sowingWallDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return sowingWallDomainService.queryList(sowingWallDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增播种墙管理
|
||||
*/
|
||||
public Boolean insert(SowingWallDO sowingWallDO) {
|
||||
|
||||
return sowingWallDomainService.insert(sowingWallDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改播种墙管理
|
||||
*/
|
||||
public Boolean update(SowingWallDO sowingWallDO) {
|
||||
return sowingWallDomainService.update(sowingWallDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除播种墙管理
|
||||
*/
|
||||
public boolean delete(Long[] sowingWallIds) {
|
||||
return sowingWallDomainService.delete(sowingWallIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取播种墙管理详细信息
|
||||
*/
|
||||
public SowingWallPO getInfo(Long sowingWallId)
|
||||
{
|
||||
return sowingWallDomainService.getInfo(sowingWallId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 根据id作废播种墙
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/13 15:48
|
||||
* @param sowingWallIds
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean nullifyByIds(Long[] sowingWallIds){
|
||||
return sowingWallDomainService.nullifyByIds(sowingWallIds);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
package com.mhd.wms.application.service.statementStatistics;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inventoryStandingDetail.service.InventoryStandingDetailDomainService;
|
||||
import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
|
||||
import com.mhd.wms.domain.statementStatistics.po.ImmediateInventoryPO;
|
||||
import com.mhd.wms.domain.statementStatistics.po.WarehousingReportPO;
|
||||
import com.mhd.wms.domain.statementStatistics.todo.ImmediateInventoryDO;
|
||||
import com.mhd.wms.domain.statementStatistics.todo.WarehousingReportDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 报表管理ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-07
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StatementStatisticsService {
|
||||
@Autowired
|
||||
private MaterialInventoryDomainService materialInventoryDomainService;
|
||||
@Autowired
|
||||
private InventoryStandingDetailDomainService inventoryStandingDetailDomainService;
|
||||
|
||||
/**
|
||||
* 分页查询即时库存列表
|
||||
*/
|
||||
|
||||
public List<ImmediateInventoryPO> queryImmediateInventoryList(ImmediateInventoryDO immediateInventoryDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
immediateInventoryDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
immediateInventoryDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return materialInventoryDomainService.queryImmediateInventoryList(immediateInventoryDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询入库日报表列表
|
||||
*/
|
||||
|
||||
public List<WarehousingReportPO> queryWarehousingReportList(WarehousingReportDO warehousingReportDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryStandingDetailDomainService.queryWarehousingReportList(warehousingReportDO);
|
||||
}
|
||||
/**
|
||||
* 分页查询出库日报表列表
|
||||
*/
|
||||
|
||||
public List<WarehousingReportPO> queryOutboundReportList(WarehousingReportDO warehousingReportDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryStandingDetailDomainService.queryOutboundReportList(warehousingReportDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询出进出存合并报表列表
|
||||
*/
|
||||
|
||||
public List<WarehousingReportPO> queryWarehousingAndOutboundReportList(WarehousingReportDO warehousingReportDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
warehousingReportDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
warehousingReportDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return inventoryStandingDetailDomainService.queryWarehousingAndOutboundReportList(warehousingReportDO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+228
@@ -0,0 +1,228 @@
|
||||
package com.mhd.wms.application.service.stockInOrder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.StringUtils;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.SysDictData;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
|
||||
import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 入库单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockInOrderApplicationService {
|
||||
@Autowired
|
||||
private StockInOrderDomainService stockInOrderDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询入库单列表
|
||||
*/
|
||||
|
||||
public List<StockInOrderPO> queryList(StockInOrderDO stockInOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockInOrderDomainService.queryList(stockInOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增入库单
|
||||
*/
|
||||
public Boolean insert(StockInOrderDO stockInOrderDO) {
|
||||
//设置仓库
|
||||
setWarehouseInfo(stockInOrderDO);
|
||||
//设置货主信息
|
||||
shipperParam(stockInOrderDO);
|
||||
//设置供应商信息
|
||||
supplierParam(stockInOrderDO);
|
||||
//设置数据字典键值
|
||||
setDataDict(stockInOrderDO);
|
||||
return stockInOrderDomainService.insert(stockInOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入库单
|
||||
*/
|
||||
public Boolean update(StockInOrderDO stockInOrderDO) {
|
||||
//设置仓库
|
||||
setWarehouseInfo(stockInOrderDO);
|
||||
//设置货主信息
|
||||
shipperParam(stockInOrderDO);
|
||||
//设置供应商信息
|
||||
supplierParam(stockInOrderDO);
|
||||
//设置数据字典键值
|
||||
setDataDict(stockInOrderDO);
|
||||
return stockInOrderDomainService.update(stockInOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除入库单
|
||||
*/
|
||||
public boolean delete(Long[] inOrderIds) {
|
||||
return stockInOrderDomainService.delete(inOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入库单详细信息
|
||||
*/
|
||||
public StockInOrderPO getInfo(Long inOrderId)
|
||||
{
|
||||
return stockInOrderDomainService.getInfo(inOrderId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 审核入库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/21 13:53
|
||||
* @param stockInOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean auditState(StockInOrderDO stockInOrderDO){
|
||||
return stockInOrderDomainService.auditState(stockInOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 取消入库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/21 13:53
|
||||
* @param stockInOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean cancelOrder(StockInOrderDO stockInOrderDO){
|
||||
return stockInOrderDomainService.cancelOrder(stockInOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 关闭入库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/21 13:53
|
||||
* @param stockInOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean closeOrder(StockInOrderDO stockInOrderDO){
|
||||
return stockInOrderDomainService.closeOrder(stockInOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param stockInOrderDO
|
||||
*/
|
||||
private void setWarehouseInfo(StockInOrderDO stockInOrderDO) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockInOrderDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
stockInOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
stockInOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装货主信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockInOrderDO
|
||||
*/
|
||||
private void shipperParam(StockInOrderDO stockInOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockInOrderDO.getShipperId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取货主信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockInOrderDO.setShipperCode(userPo.getUserMemberCode());
|
||||
stockInOrderDO.setShipperName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装供应商信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockInOrderDO
|
||||
*/
|
||||
private void supplierParam(StockInOrderDO stockInOrderDO){
|
||||
if (ObjectUtil.isNotNull(stockInOrderDO.getSupplierId())){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockInOrderDO.getSupplierId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取供应商信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockInOrderDO.setSupplierName(userPo.getUserName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置数据字典键值
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 14:33
|
||||
* @param stockInOrderDO
|
||||
*/
|
||||
private void setDataDict(StockInOrderDO stockInOrderDO){
|
||||
//翻译单据类型
|
||||
AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.DOCUMENT_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
|
||||
throw new ServiceException("单据类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockInOrderDO.getOrderTypeCode())).findAny().orElse(null);
|
||||
if (null == documentTypeData) {
|
||||
throw new ServiceException("单据类型【" + stockInOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
stockInOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
|
||||
|
||||
//翻译优先级别类型
|
||||
if (StringUtils.isNotBlank(stockInOrderDO.getPriorityLevelCode())){
|
||||
AjaxResult priorityLevelResult = systemServiceFeign.selectListByDictType(DictCode.PRIORITY_LEVEL.getCode());
|
||||
if (!"200".equals(String.valueOf(priorityLevelResult.get("code")))) {
|
||||
throw new ServiceException("优先级别类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> priorityLevelDataList = JSON.parseArray(JSONUtil.toJsonStr(priorityLevelResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData priorityLevelData = priorityLevelDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockInOrderDO.getPriorityLevelCode())).findAny().orElse(null);
|
||||
if (null == priorityLevelData) {
|
||||
throw new ServiceException("优先级别类型【" + stockInOrderDO.getPriorityLevelCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
stockInOrderDO.setPriorityLevelName(priorityLevelData.getDictLabel());
|
||||
}
|
||||
}
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.wms.application.service.stockInTaskOrder;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.stockInTaskOrder.repository.po.StockInTaskOrderPO;
|
||||
import com.mhd.wms.domain.stockInTaskOrder.repository.todo.StockInTaskOrderDO;
|
||||
import com.mhd.wms.domain.stockInTaskOrder.service.StockInTaskOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 入库作业单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockInTaskOrderApplicationService {
|
||||
@Autowired
|
||||
private StockInTaskOrderDomainService stockInTaskOrderDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询入库作业单列表
|
||||
*/
|
||||
|
||||
public List<StockInTaskOrderPO> queryList(StockInTaskOrderDO stockInTaskOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockInTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockInTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockInTaskOrderDomainService.queryList(stockInTaskOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增入库作业单
|
||||
*/
|
||||
public Boolean insert(StockInTaskOrderDO stockInTaskOrderDO) {
|
||||
|
||||
return stockInTaskOrderDomainService.insert(stockInTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改入库作业单
|
||||
*/
|
||||
public Boolean update(StockInTaskOrderDO stockInTaskOrderDO) {
|
||||
return stockInTaskOrderDomainService.update(stockInTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除入库作业单
|
||||
*/
|
||||
public boolean delete(Long[] inTaskOrderIds) {
|
||||
return stockInTaskOrderDomainService.delete(inTaskOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入库作业单详细信息
|
||||
*/
|
||||
public StockInTaskOrderPO getInfo(Long inTaskOrderId)
|
||||
{
|
||||
return stockInTaskOrderDomainService.getInfo(inTaskOrderId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+524
@@ -0,0 +1,524 @@
|
||||
package com.mhd.wms.application.service.stockOutOrder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.core.utils.StringUtils;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.SysDictData;
|
||||
import com.mhd.system.api.domain.WarehouseFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.materialInventory.repository.po.MaterialInventoryPO;
|
||||
import com.mhd.wms.domain.materialInventory.service.MaterialInventoryDomainService;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
||||
import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO;
|
||||
import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
|
||||
import com.mhd.wms.domain.stockOutOrder.service.StockOutOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 出库单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockOutOrderApplicationService {
|
||||
@Autowired
|
||||
private StockOutOrderDomainService stockOutOrderDomainService;
|
||||
@Autowired
|
||||
private OutMaterialDetailDomainService outMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private MaterialInventoryDomainService materialInventoryDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询出库单列表
|
||||
*/
|
||||
|
||||
public List<StockOutOrderPO> queryList(StockOutOrderDO stockOutOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockOutOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockOutOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockOutOrderDomainService.queryList(stockOutOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库单
|
||||
*/
|
||||
public Boolean insert(StockOutOrderDO stockOutOrderDO) {
|
||||
//设置仓库
|
||||
setWarehouseInfo(stockOutOrderDO);
|
||||
//设置货主信息
|
||||
shipperParam(stockOutOrderDO);
|
||||
//设置客户信息
|
||||
customerParam(stockOutOrderDO);
|
||||
//设置数据字典键值
|
||||
setDataDict(stockOutOrderDO);
|
||||
return stockOutOrderDomainService.insert(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库单
|
||||
*/
|
||||
public Boolean update(StockOutOrderDO stockOutOrderDO) {
|
||||
return stockOutOrderDomainService.update(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库单
|
||||
*/
|
||||
public Boolean close(StockOutOrderDO stockOutOrderDO) {
|
||||
return stockOutOrderDomainService.close(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除出库单
|
||||
*/
|
||||
public boolean delete(Long[] outOrderIds) {
|
||||
return stockOutOrderDomainService.delete(outOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库单详细信息
|
||||
*/
|
||||
public StockOutOrderPO getInfoChildren(Long outOrderId)
|
||||
{
|
||||
return stockOutOrderDomainService.getInfoChildren(outOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库单详细信息
|
||||
*/
|
||||
public StockOutOrderPO getInfoByApp(Long outOrderId)
|
||||
{
|
||||
return stockOutOrderDomainService.getInfoByApp(outOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 审核出库单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/21 13:53
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean auditState(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.auditState(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 手动分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean manualAssign(StockOutOrderDO stockOutOrderDO){
|
||||
StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
|
||||
return stockOutOrderDomainService.manualAssign(assembleStockOutOrderDO);
|
||||
}
|
||||
|
||||
public Boolean autoAssign(StockOutOrderDO stockOutOrderDO){
|
||||
StockOutOrderDO assembleStockOutOrderDO = assembleParamByOutOrder(stockOutOrderDO);
|
||||
return stockOutOrderDomainService.autoAssign(assembleStockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 取消分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean cancelAssign(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.cancelAssign(stockOutOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 复核下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean checkTaskDistribution(StockOutOrderDO stockOutOrderDO){
|
||||
//设置作业人员信息
|
||||
checkOperatorsParam(stockOutOrderDO);
|
||||
return stockOutOrderDomainService.checkTaskDistribution(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 生成拣货单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean genPickingOrder(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.genPickingOrder(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库单复核详细信息
|
||||
*/
|
||||
public StockOutOrderPO getCheckInfo(StockOutOrderDO stockOutOrderDO) {
|
||||
return stockOutOrderDomainService.getCheckInfo(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 单件复核
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public OutMaterialCheckPO singleCheck(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.singleCheck(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 批量复核
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean batchCheck(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.batchCheck(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 批量取消复核
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean batchCancelCheck(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.batchCancelCheck(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description PDA复核
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean checkByApp(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.checkByApp(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 复核确认
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean checkConfirm(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.checkConfirm(stockOutOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 根据指定规则生成波次单
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/7 15:06
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean genWaveOrder(StockOutOrderDO stockOutOrderDO){
|
||||
return stockOutOrderDomainService.genWaveOrder(stockOutOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 生成补货单
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/15 17:41
|
||||
* @param outOrderId
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean genReplenishmentNotice(Long outOrderId){
|
||||
return stockOutOrderDomainService.genReplenishmentNotice(outOrderId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 出库分配 装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockOutOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private StockOutOrderDO assembleParamByOutOrder(StockOutOrderDO stockOutOrderDO) {
|
||||
StockOutOrderPO stockOutOrderPO = stockOutOrderDomainService.getInfo(stockOutOrderDO.getOutOrderId());
|
||||
if (stockOutOrderPO == null){
|
||||
throw new ServiceException("出库单不存在");
|
||||
}
|
||||
if (stockOutOrderPO.getStatus() > 4) {
|
||||
throw new ServiceException("出库单已完成分配");
|
||||
}
|
||||
StockOutOrderDO returnStockOutOrderDO = new StockOutOrderDO();
|
||||
returnStockOutOrderDO.setUpdateTime(stockOutOrderDO.getUpdateTime());
|
||||
returnStockOutOrderDO.setOutOrderId(stockOutOrderPO.getOutOrderId());
|
||||
returnStockOutOrderDO.setOrganizationId(stockOutOrderPO.getOrganizationId());
|
||||
returnStockOutOrderDO.setOrganizationName(stockOutOrderPO.getOrganizationName());
|
||||
returnStockOutOrderDO.setTopOrganizationId(stockOutOrderPO.getTopOrganizationId());
|
||||
returnStockOutOrderDO.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber());
|
||||
OutMaterialDetailDO outMaterialDetailDOByQuery = new OutMaterialDetailDO();
|
||||
outMaterialDetailDOByQuery.setOutOrderNumber(stockOutOrderPO.getOutOrderNumber());
|
||||
List<OutMaterialDetailPO> outMaterialDetailPODbList = outMaterialDetailDomainService.queryList(outMaterialDetailDOByQuery);
|
||||
Map<Long, OutMaterialDetailPO> outMaterialDetailDbMap = outMaterialDetailPODbList.stream().collect(Collectors.toMap(OutMaterialDetailPO::getMaterialDetailId, Function.identity()));
|
||||
List<OutMaterialDetailDO> returnOutMaterialDetailDOList = new ArrayList<>();
|
||||
for (OutMaterialDetailDO outMaterialDetailDO : stockOutOrderDO.getMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
OutMaterialDetailPO outMaterialDetailPO = outMaterialDetailDbMap.get(outMaterialDetailDO.getMaterialDetailId());
|
||||
if (outMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (outMaterialDetailDO.getAllocationQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行分配直接跳过
|
||||
continue;
|
||||
}
|
||||
BigDecimal totalAllocationQuantity = BigDecimal.ZERO;//当前作业分配数量
|
||||
//判断收否分配 第一次分配 修改分配数量
|
||||
// if (outMaterialDetailPO.getAllocationQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
if (2 != outMaterialDetailDO.getAllowModify()){
|
||||
//设置上架库位
|
||||
setStorageLocationInfo(outMaterialDetailDO);
|
||||
//设置库存信息
|
||||
setMaterialInventory(outMaterialDetailDO);
|
||||
//分配后 设置该记录不允许被修改
|
||||
outMaterialDetailDO.setAllowModify(2);
|
||||
//未分配过货 统计到当前分配单作业分配数
|
||||
totalAllocationQuantity = outMaterialDetailDO.getAllocationQuantity();
|
||||
}
|
||||
//判断是否存在子项
|
||||
List<OutMaterialDetailDO> returnOutMaterialDetailDOChildList = new ArrayList<>();
|
||||
List<OutMaterialDetailDO> outMaterialDetailDOChildList = outMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(outMaterialDetailDOChildList)){
|
||||
for (OutMaterialDetailDO outMaterialDetailDOChild : outMaterialDetailDOChildList){
|
||||
OutMaterialDetailPO outMaterialDetailPOChildDb = outMaterialDetailDbMap.get(outMaterialDetailDOChild.getMaterialDetailId());
|
||||
if (outMaterialDetailPOChildDb != null){
|
||||
continue;
|
||||
}
|
||||
OutMaterialDetailDO returnOutMaterialDetailDOChild = new OutMaterialDetailDO();
|
||||
BeanUtils.copyProperties(outMaterialDetailPO, returnOutMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
|
||||
"updateBy","updateByName","updateTime");
|
||||
BeanUtils.copyProperties(outMaterialDetailDOChild, returnOutMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(outMaterialDetailDOChild));
|
||||
if (ObjectUtil.isNotNull(returnOutMaterialDetailDOChild.getMaterialDetailId()) && returnOutMaterialDetailDOChild.getMaterialDetailId() == 0){
|
||||
returnOutMaterialDetailDOChild.setMaterialDetailId(null);
|
||||
}
|
||||
//设置上架库位
|
||||
setStorageLocationInfo(outMaterialDetailDO);
|
||||
//设置库存信息
|
||||
setMaterialInventory(outMaterialDetailDO);
|
||||
//分配后 设置该记录不允许被修改
|
||||
returnOutMaterialDetailDOChild.setAllowModify(2);
|
||||
returnOutMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
returnOutMaterialDetailDOChild.setLevel(2);
|
||||
returnOutMaterialDetailDOChild.setParentUniqueId(outMaterialDetailPO.getUniqueId());
|
||||
returnOutMaterialDetailDOChildList.add(returnOutMaterialDetailDOChild);
|
||||
totalAllocationQuantity = totalAllocationQuantity.add(returnOutMaterialDetailDOChild.getAllocationQuantity());
|
||||
}
|
||||
}
|
||||
//主单当分配作业数量和
|
||||
outMaterialDetailDO.setAlreadyAllocationQuantity(totalAllocationQuantity);
|
||||
OutMaterialDetailDO returnOutMaterialDetailDO = new OutMaterialDetailDO();
|
||||
BeanUtils.copyProperties(outMaterialDetailPO, returnOutMaterialDetailDO);
|
||||
BeanUtils.copyProperties(outMaterialDetailDO, returnOutMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(outMaterialDetailDO));
|
||||
returnOutMaterialDetailDO.setChildren(returnOutMaterialDetailDOChildList);
|
||||
returnOutMaterialDetailDOList.add(returnOutMaterialDetailDO);
|
||||
}
|
||||
returnStockOutOrderDO.setMaterialDetailList(returnOutMaterialDetailDOList);
|
||||
return returnStockOutOrderDO;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param stockOutOrderDO
|
||||
*/
|
||||
private void setWarehouseInfo(StockOutOrderDO stockOutOrderDO) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockOutOrderDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
stockOutOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
stockOutOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装货主信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockOutOrderDO
|
||||
*/
|
||||
private void shipperParam(StockOutOrderDO stockOutOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getShipperId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取货主信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockOutOrderDO.setShipperCode(userPo.getUserMemberCode());
|
||||
stockOutOrderDO.setShipperName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装客户信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockOutOrderDO
|
||||
*/
|
||||
private void customerParam(StockOutOrderDO stockOutOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getCustomerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取客户信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockOutOrderDO.setCustomerCode(userPo.getUserMemberCode());
|
||||
stockOutOrderDO.setCustomerName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置数据字典键值
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 14:33
|
||||
* @param stockOutOrderDO
|
||||
*/
|
||||
private void setDataDict(StockOutOrderDO stockOutOrderDO){
|
||||
//翻译单据类型
|
||||
AjaxResult documentTypeResult = systemServiceFeign.selectListByDictType(DictCode.OUT_DOCUMENT_TYPE.getCode());
|
||||
if (!"200".equals(String.valueOf(documentTypeResult.get("code")))) {
|
||||
throw new ServiceException("单据类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> documentTypeDataList = JSON.parseArray(JSONUtil.toJsonStr(documentTypeResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData documentTypeData = documentTypeDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockOutOrderDO.getOrderTypeCode())).findAny().orElse(null);
|
||||
if (null == documentTypeData) {
|
||||
throw new ServiceException("单据类型【" + stockOutOrderDO.getOrderTypeCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
stockOutOrderDO.setOrderTypeName(documentTypeData.getDictLabel());
|
||||
|
||||
if (StringUtils.isNotBlank(stockOutOrderDO.getPriorityLevelCode())){
|
||||
//翻译优先级别类型
|
||||
AjaxResult priorityLevelResult = systemServiceFeign.selectListByDictType(DictCode.PRIORITY_LEVEL.getCode());
|
||||
if (!"200".equals(String.valueOf(priorityLevelResult.get("code")))) {
|
||||
throw new ServiceException("优先级别类型数据字典不存在");
|
||||
}
|
||||
List<SysDictData> priorityLevelDataList = JSON.parseArray(JSONUtil.toJsonStr(priorityLevelResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData priorityLevelData = priorityLevelDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), stockOutOrderDO.getPriorityLevelCode())).findAny().orElse(null);
|
||||
if (null == priorityLevelData) {
|
||||
throw new ServiceException("优先级别类型【" + stockOutOrderDO.getPriorityLevelCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
stockOutOrderDO.setPriorityLevelName(priorityLevelData.getDictLabel());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置上架库位信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param outMaterialDetailDO
|
||||
*/
|
||||
private void setStorageLocationInfo(OutMaterialDetailDO outMaterialDetailDO){
|
||||
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(outMaterialDetailDO.getStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
|
||||
throw new ServiceException("获取上架库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
|
||||
outMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
|
||||
outMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
|
||||
outMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
|
||||
outMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
|
||||
outMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
|
||||
outMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
|
||||
outMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
|
||||
outMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
outMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockOutOrderDO
|
||||
*/
|
||||
private void checkOperatorsParam(StockOutOrderDO stockOutOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockOutOrderDO.getCheckOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockOutOrderDO.setCheckOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置库存信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/7/19 20:17
|
||||
* @param outMaterialDetailDO
|
||||
*/
|
||||
private void setMaterialInventory(OutMaterialDetailDO outMaterialDetailDO){
|
||||
if (ObjectUtil.isNull(outMaterialDetailDO.getMaterialInventoryId()) || outMaterialDetailDO.getMaterialInventoryId() == 0){
|
||||
return;
|
||||
}
|
||||
MaterialInventoryPO materialInventoryPO = materialInventoryDomainService.getInfo(outMaterialDetailDO.getMaterialInventoryId());
|
||||
if (materialInventoryPO == null){
|
||||
throw new ServiceException("物料库存信息不存在");
|
||||
}
|
||||
outMaterialDetailDO.setBatchNumber(materialInventoryPO.getBatchNumber());
|
||||
outMaterialDetailDO.setMaterialStatusCode(materialInventoryPO.getMaterialStatusCode());
|
||||
outMaterialDetailDO.setMaterialStatusName(materialInventoryPO.getMaterialStatusName());
|
||||
outMaterialDetailDO.setContainerId(materialInventoryPO.getContainerId());
|
||||
outMaterialDetailDO.setContainerCode(materialInventoryPO.getContainerCode());
|
||||
outMaterialDetailDO.setContainerType(materialInventoryPO.getContainerType());
|
||||
outMaterialDetailDO.setContainerTypeName(materialInventoryPO.getContainerTypeName());
|
||||
}
|
||||
}
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
package com.mhd.wms.application.service.stockOutTaskOrder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.stockOutTaskOrder.repository.po.StockOutTaskOrderPO;
|
||||
import com.mhd.wms.domain.stockOutTaskOrder.repository.todo.StockOutTaskOrderDO;
|
||||
import com.mhd.wms.domain.stockOutTaskOrder.service.StockOutTaskOrderDomainService;
|
||||
import com.mhd.wms.domain.taskPickingMaterialDetail.repository.po.TaskPickingMaterialDetailPO;
|
||||
import com.mhd.wms.domain.taskPickingMaterialDetail.repository.todo.TaskPickingMaterialDetailDO;
|
||||
import com.mhd.wms.domain.taskPickingMaterialDetail.service.TaskPickingMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 拣货作业单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockOutTaskOrderApplicationService {
|
||||
@Autowired
|
||||
private StockOutTaskOrderDomainService stockOutTaskOrderDomainService;
|
||||
@Autowired
|
||||
private TaskPickingMaterialDetailDomainService taskPickingMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询拣货作业单列表
|
||||
*/
|
||||
|
||||
public List<StockOutTaskOrderPO> queryList(StockOutTaskOrderDO stockOutTaskOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockOutTaskOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockOutTaskOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockOutTaskOrderDomainService.queryList(stockOutTaskOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增拣货作业单
|
||||
*/
|
||||
public Boolean insert(StockOutTaskOrderDO stockOutTaskOrderDO) {
|
||||
|
||||
return stockOutTaskOrderDomainService.insert(stockOutTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拣货作业单
|
||||
*/
|
||||
public Boolean update(StockOutTaskOrderDO stockOutTaskOrderDO) {
|
||||
return stockOutTaskOrderDomainService.update(stockOutTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除拣货作业单
|
||||
*/
|
||||
public boolean delete(Long[] outTaskOrderIds) {
|
||||
return stockOutTaskOrderDomainService.delete(outTaskOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取拣货作业单详细信息
|
||||
*/
|
||||
public StockOutTaskOrderPO getInfo(Long outTaskOrderId)
|
||||
{
|
||||
return stockOutTaskOrderDomainService.getInfo(outTaskOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 按库位拣货 获取拣货作业单详细信息
|
||||
*/
|
||||
public StockOutTaskOrderPO getInfoByStorageLocation(Long outTaskOrderId)
|
||||
{
|
||||
return stockOutTaskOrderDomainService.getInfoByStorageLocation(outTaskOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
*按物料拣货 获取拣货作业单详细信息
|
||||
*/
|
||||
public StockOutTaskOrderPO getInfoByMaterial(Long outTaskOrderId)
|
||||
{
|
||||
return stockOutTaskOrderDomainService.getInfoByMaterial(outTaskOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 按物料拣货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param stockOutTaskOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean pickingByMaterial(StockOutTaskOrderDO stockOutTaskOrderDO){
|
||||
StockOutTaskOrderDO assembleStockOutTaskOrderDO = assembleParamByTaskOrder(stockOutTaskOrderDO);
|
||||
return stockOutTaskOrderDomainService.pickingByMaterial(assembleStockOutTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 完成拣货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/30 10:30
|
||||
* @param outTaskOrderId
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean completePicking(Long outTaskOrderId){
|
||||
return stockOutTaskOrderDomainService.completePicking(outTaskOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 拣货 装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockOutTaskOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private StockOutTaskOrderDO assembleParamByTaskOrder(StockOutTaskOrderDO stockOutTaskOrderDO) {
|
||||
StockOutTaskOrderPO stockOutTaskOrderPO = stockOutTaskOrderDomainService.getInfo(stockOutTaskOrderDO.getOutTaskOrderId());
|
||||
if (stockOutTaskOrderPO == null){
|
||||
throw new ServiceException("拣货作业单不存在");
|
||||
}
|
||||
if (stockOutTaskOrderPO.getStatus() > 2) {
|
||||
throw new ServiceException("拣货作业单已完成拣货");
|
||||
}
|
||||
StockOutTaskOrderDO returnStockOutTaskOrderDO = new StockOutTaskOrderDO();
|
||||
returnStockOutTaskOrderDO.setUpdateTime(stockOutTaskOrderDO.getUpdateTime());
|
||||
returnStockOutTaskOrderDO.setOutTaskOrderId(stockOutTaskOrderPO.getOutTaskOrderId());
|
||||
returnStockOutTaskOrderDO.setOrganizationId(stockOutTaskOrderPO.getOrganizationId());
|
||||
returnStockOutTaskOrderDO.setOrganizationName(stockOutTaskOrderPO.getOrganizationName());
|
||||
returnStockOutTaskOrderDO.setTopOrganizationId(stockOutTaskOrderPO.getTopOrganizationId());
|
||||
returnStockOutTaskOrderDO.setTaskNumber(stockOutTaskOrderPO.getTaskNumber());
|
||||
TaskPickingMaterialDetailDO taskPickingMaterialDetailDOByQuery = new TaskPickingMaterialDetailDO();
|
||||
taskPickingMaterialDetailDOByQuery.setTaskNumber(stockOutTaskOrderPO.getTaskNumber());
|
||||
List<TaskPickingMaterialDetailPO> taskPickingMaterialDetailPODbList = taskPickingMaterialDetailDomainService.queryList(taskPickingMaterialDetailDOByQuery);
|
||||
Map<Long, TaskPickingMaterialDetailPO> taskPickingMaterialDetailDbMap = taskPickingMaterialDetailPODbList.stream().collect(Collectors.toMap(TaskPickingMaterialDetailPO::getMaterialDetailId, Function.identity()));
|
||||
List<TaskPickingMaterialDetailDO> returnTaskPickingMaterialDetailDOList = new ArrayList<>();
|
||||
for (TaskPickingMaterialDetailDO taskPickingMaterialDetailDO : stockOutTaskOrderDO.getTaskPickingMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
TaskPickingMaterialDetailPO taskPickingMaterialDetailPO = taskPickingMaterialDetailDbMap.get(taskPickingMaterialDetailDO.getMaterialDetailId());
|
||||
if (taskPickingMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (ObjectUtil.isNull(taskPickingMaterialDetailDO.getActualQuantity()) || taskPickingMaterialDetailDO.getActualQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行拣货直接跳过
|
||||
continue;
|
||||
}
|
||||
TaskPickingMaterialDetailDO returnTaskPickingMaterialDetailDO = new TaskPickingMaterialDetailDO();
|
||||
BeanUtils.copyProperties(taskPickingMaterialDetailPO, returnTaskPickingMaterialDetailDO);
|
||||
returnTaskPickingMaterialDetailDO.setActualQuantity(taskPickingMaterialDetailDO.getActualQuantity());
|
||||
//是否开启了序列号管理
|
||||
if (taskPickingMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(taskPickingMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + taskPickingMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnTaskPickingMaterialDetailDO.setMaterialDetailSerialNumberList(taskPickingMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnTaskPickingMaterialDetailDOList.add(returnTaskPickingMaterialDetailDO);
|
||||
}
|
||||
returnStockOutTaskOrderDO.setTaskPickingMaterialDetailList(returnTaskPickingMaterialDetailDOList);
|
||||
return returnStockOutTaskOrderDO;
|
||||
}
|
||||
|
||||
}
|
||||
+743
@@ -0,0 +1,743 @@
|
||||
package com.mhd.wms.application.service.stockReceiptOrder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.enums.DictCode;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.DateUtils;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.core.utils.OrderSequence;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.*;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
|
||||
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.facade.IMaterialGoodsRuleService;
|
||||
import com.mhd.wms.domain.materialGoodsRule.repository.po.MaterialGoodsRulePO;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.repository.facade.IMaterialWarehouseControlService;
|
||||
import com.mhd.wms.domain.materialWarehouseControl.repository.po.MaterialWarehouseControlPO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
|
||||
import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 收货单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockReceiptOrderApplicationService {
|
||||
@Autowired
|
||||
private StockReceiptOrderDomainService stockReceiptOrderDomainService;
|
||||
@Autowired
|
||||
private ReceiptMaterialDetailDomainService receiptMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private IMaterialWarehouseControlService materialWarehouseControlService;
|
||||
@Autowired
|
||||
private IMaterialBaseInfoService materialBaseInfoService;
|
||||
@Autowired
|
||||
private IMaterialGoodsRuleService materialGoodsRuleService;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询收货单列表
|
||||
*/
|
||||
|
||||
public List<StockReceiptOrderPO> queryList(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockReceiptOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockReceiptOrderDomainService.queryList(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收货单
|
||||
*/
|
||||
public Boolean update(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
return stockReceiptOrderDomainService.update(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除收货单
|
||||
*/
|
||||
public boolean delete(Long[] receiptOrderIds) {
|
||||
return stockReceiptOrderDomainService.delete(receiptOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收货单详细信息
|
||||
*/
|
||||
public StockReceiptOrderPO getInfo(Long receiptOrderId)
|
||||
{
|
||||
StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(receiptOrderId);
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDO = new ReceiptMaterialDetailDO();
|
||||
receiptMaterialDetailDO.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
|
||||
List<ReceiptMaterialDetailPO> receiptMaterialDetailPOList = receiptMaterialDetailDomainService.queryListChildren(receiptMaterialDetailDO);
|
||||
stockReceiptOrderPO.setMaterialDetailList(receiptMaterialDetailPOList);
|
||||
return stockReceiptOrderPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收货单详细信息
|
||||
*/
|
||||
public StockReceiptOrderPO getInfoByApp(Long receiptOrderId)
|
||||
{
|
||||
return stockReceiptOrderDomainService.getInfoByApp(receiptOrderId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 分配月台
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 15:19
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean allocationPlatform(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//封装月台信息
|
||||
platformParam(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.allocationPlatform(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 释放月台
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 15:19
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean releasePlatform(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
return stockReceiptOrderDomainService.releasePlatform(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 任务下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean taskDistribution(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//设置作业人员信息
|
||||
operatorsParam(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.taskDistribution(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean receivingGoods(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//收货装配参数
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.receivingGoods(assembleStockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean receivingGoodsByApp(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
|
||||
receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
|
||||
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
|
||||
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
|
||||
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
|
||||
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
|
||||
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
|
||||
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
|
||||
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
|
||||
//只留二级
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = receiptMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
|
||||
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
|
||||
});
|
||||
//收货装配参数
|
||||
StockReceiptOrderDO assembleStockReceiptOrderDO = assembleParamByReceipt(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.receivingGoods(assembleStockReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 完成收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param receiptOrderId
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean completeReceipt(Long receiptOrderId){
|
||||
return stockReceiptOrderDomainService.completeReceipt(receiptOrderId);
|
||||
}
|
||||
|
||||
public Boolean genStockShelfOrder(Long receiptOrderId){
|
||||
return stockReceiptOrderDomainService.genStockShelfOrder(receiptOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 整单收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param receiptOrderIds
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean entireReceipt(Long[] receiptOrderIds){
|
||||
return stockReceiptOrderDomainService.entireReceipt(receiptOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 无单收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean noOrderReceipt(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//设置仓库
|
||||
setWarehouseInfo(stockReceiptOrderDO);
|
||||
//设置货主信息
|
||||
shipperParam(stockReceiptOrderDO);
|
||||
//设置供应商信息
|
||||
supplierParam(stockReceiptOrderDO);
|
||||
//收货装配参数
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
|
||||
receiptMaterialDetailDOList.forEach(receiptMaterialDetailDO -> {
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList1 = receiptMaterialDetailDO.getChildren();
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDOChildren = receiptMaterialDetailDOChildrenList1.get(0);
|
||||
receiptMaterialDetailDO.setMaterialDetailId(receiptMaterialDetailDOChildren.getMaterialDetailId());
|
||||
receiptMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDOChildren.getReceiptQuantity());
|
||||
receiptMaterialDetailDO.setMaterialStatusCode(receiptMaterialDetailDOChildren.getMaterialStatusCode());
|
||||
receiptMaterialDetailDO.setBatchNumber(receiptMaterialDetailDOChildren.getBatchNumber());
|
||||
receiptMaterialDetailDO.setContainerId(receiptMaterialDetailDOChildren.getContainerId());
|
||||
receiptMaterialDetailDO.setLevel(receiptMaterialDetailDOChildren.getLevel());
|
||||
receiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDOChildren.getMaterialMoreDetailList());
|
||||
receiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
|
||||
//只留二级
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildrenList2 = new ArrayList<>();
|
||||
for (int i = 0; i < receiptMaterialDetailDOChildrenList1.size(); i++){
|
||||
if (i == 0){
|
||||
continue;
|
||||
}
|
||||
receiptMaterialDetailDOChildrenList2.add(receiptMaterialDetailDOChildrenList1.get(i));
|
||||
}
|
||||
receiptMaterialDetailDO.setChildren(receiptMaterialDetailDOChildrenList2);
|
||||
});
|
||||
NoReceiptOrderDO noReceiptOrderDO = assembleParamByNoOrderReceipt(stockReceiptOrderDO);
|
||||
return stockReceiptOrderDomainService.noOrderReceipt(noReceiptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装月台信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/13 10:45
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void platformParam(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
//封装月台信息
|
||||
AjaxResult ajaxResult = systemServiceFeign.getPlatformInfoByPlatformId(stockReceiptOrderDO.getPlatformId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取月台信息失败");
|
||||
}
|
||||
PlatformFeignPO platformFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), PlatformFeignPO.class);
|
||||
stockReceiptOrderDO.setPlatformCode(platformFeignPO.getPlatformCode());
|
||||
stockReceiptOrderDO.setPlatformName(platformFeignPO.getPlatformName());
|
||||
|
||||
//封装月台使用时间信息
|
||||
AjaxResult ajaxResult2 = systemServiceFeign.getPlatformUseTimeInfoByPlatformUseTimeId(stockReceiptOrderDO.getPlatformId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult2.get("code")))){
|
||||
throw new ServiceException("获取月台使用时间信息失败");
|
||||
}
|
||||
PlatformUseTimeFeignPO platformUseTimeFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult2.get("data")), PlatformUseTimeFeignPO.class);
|
||||
try {
|
||||
stockReceiptOrderDO.setPlatformUseStartTime(DateUtils.parseDate(platformUseTimeFeignPO.getStartTime(), "HH:mm"));
|
||||
stockReceiptOrderDO.setPlatformUseEndTime(DateUtils.parseDate(platformUseTimeFeignPO.getEndTime(), "HH:mm"));
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void operatorsParam(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockReceiptOrderDO.setOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private StockReceiptOrderDO assembleParamByReceipt(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
StockReceiptOrderPO stockReceiptOrderPO = stockReceiptOrderDomainService.getInfo(stockReceiptOrderDO.getReceiptOrderId());
|
||||
if (stockReceiptOrderPO == null){
|
||||
throw new ServiceException("收货单不存在");
|
||||
}
|
||||
if (stockReceiptOrderPO.getStatus() > 2) {
|
||||
throw new ServiceException("收货单已完成收货");
|
||||
}
|
||||
StockReceiptOrderDO returnStockReceiptOrderDO = new StockReceiptOrderDO();
|
||||
returnStockReceiptOrderDO.setUpdateTime(stockReceiptOrderDO.getUpdateTime());
|
||||
returnStockReceiptOrderDO.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId());
|
||||
returnStockReceiptOrderDO.setOrganizationId(stockReceiptOrderPO.getOrganizationId());
|
||||
returnStockReceiptOrderDO.setOrganizationName(stockReceiptOrderPO.getOrganizationName());
|
||||
returnStockReceiptOrderDO.setTopOrganizationId(stockReceiptOrderPO.getTopOrganizationId());
|
||||
returnStockReceiptOrderDO.setWarehouseId(stockReceiptOrderPO.getWarehouseId());
|
||||
returnStockReceiptOrderDO.setWarehouseCode(stockReceiptOrderPO.getWarehouseCode());
|
||||
returnStockReceiptOrderDO.setWarehouseName(stockReceiptOrderPO.getWarehouseName());
|
||||
returnStockReceiptOrderDO.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
|
||||
returnStockReceiptOrderDO.setInOrderNumber(stockReceiptOrderPO.getInOrderNumber());
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDOByQuery = new ReceiptMaterialDetailDO();
|
||||
receiptMaterialDetailDOByQuery.setReceiptOrderNumber(stockReceiptOrderPO.getReceiptOrderNumber());
|
||||
List<ReceiptMaterialDetailPO> receiptMaterialDetailPODbList = receiptMaterialDetailDomainService.queryList(receiptMaterialDetailDOByQuery);
|
||||
Map<Long, ReceiptMaterialDetailPO> receiptMaterialDetailDbMap = receiptMaterialDetailPODbList.stream().collect(Collectors.toMap(ReceiptMaterialDetailPO::getMaterialDetailId, Function.identity()));
|
||||
BigDecimal totalActualQuantity = BigDecimal.ZERO;//收货单当前作业收货数
|
||||
int totalActualReceiptMaterialQuantity = 0;//收货单收货物料种数
|
||||
List<ReceiptMaterialDetailDO> returnReceiptMaterialDetailDOList = new ArrayList<>();
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDO : stockReceiptOrderDO.getMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
ReceiptMaterialDetailPO receiptMaterialDetailPO = receiptMaterialDetailDbMap.get(receiptMaterialDetailDO.getMaterialDetailId());
|
||||
if (receiptMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (receiptMaterialDetailDO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行收货直接跳过
|
||||
continue;
|
||||
}
|
||||
BigDecimal actualQuantity = BigDecimal.ZERO;//当前作业收货数
|
||||
//判断收否收货 第一次收货创建 更多属性 序列号
|
||||
if (receiptMaterialDetailPO.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//收货后 设置该记录不允许被修改
|
||||
receiptMaterialDetailDO.setAllowModify(2);
|
||||
//未收过货 统计到当前收货单作业收货数
|
||||
actualQuantity = receiptMaterialDetailDO.getReceiptQuantity();
|
||||
//设置物料状态及容器信息
|
||||
setMaterialMoreDetailInfo(receiptMaterialDetailDO);
|
||||
}
|
||||
//判断是否存在子项
|
||||
List<ReceiptMaterialDetailDO> returnReceiptMaterialDetailDOChildList = new ArrayList<>();
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildList = receiptMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)){
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList){
|
||||
ReceiptMaterialDetailPO receiptMaterialDetailPOChildDb = receiptMaterialDetailDbMap.get(receiptMaterialDetailDOChild.getMaterialDetailId());
|
||||
if (receiptMaterialDetailPOChildDb != null){
|
||||
continue;
|
||||
}
|
||||
ReceiptMaterialDetailDO returnReceiptMaterialDetailDOChild = new ReceiptMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
|
||||
"updateBy","updateByName","updateTime");
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChild, returnReceiptMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDOChild));
|
||||
if (ObjectUtil.isNotNull(returnReceiptMaterialDetailDOChild.getMaterialDetailId()) && returnReceiptMaterialDetailDOChild.getMaterialDetailId() == 0){
|
||||
returnReceiptMaterialDetailDOChild.setMaterialDetailId(null);
|
||||
}
|
||||
//收货后 设置该记录不允许被修改
|
||||
returnReceiptMaterialDetailDOChild.setAllowModify(2);
|
||||
returnReceiptMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
returnReceiptMaterialDetailDOChild.setLevel(2);
|
||||
returnReceiptMaterialDetailDOChild.setParentUniqueId(receiptMaterialDetailPO.getUniqueId());
|
||||
//设置物料状态及容器信息
|
||||
setMaterialMoreDetailInfo(returnReceiptMaterialDetailDOChild);
|
||||
//是否开启了序列号管理
|
||||
if (receiptMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnReceiptMaterialDetailDOChild.setMaterialDetailSerialNumberList(receiptMaterialDetailDOChild.getMaterialDetailSerialNumberList());
|
||||
returnReceiptMaterialDetailDOChild.setMaterialMoreDetailList(receiptMaterialDetailDOChild.getMaterialMoreDetailList());
|
||||
returnReceiptMaterialDetailDOChildList.add(returnReceiptMaterialDetailDOChild);
|
||||
actualQuantity = actualQuantity.add(returnReceiptMaterialDetailDOChild.getReceiptQuantity());
|
||||
}
|
||||
}
|
||||
//已收货数量 = 已收货数量 + 当前作业数量
|
||||
receiptMaterialDetailDO.setAlreadyReceiptQuantity(receiptMaterialDetailPO.getAlreadyReceiptQuantity().add(actualQuantity));
|
||||
//记录本次收货单收货总数
|
||||
totalActualQuantity = totalActualQuantity.add(actualQuantity);
|
||||
//判断收货数量是否大于计划数量
|
||||
Integer receiptStatus = judgeReceiptQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity(), receiptMaterialDetailPO.getQuantity());
|
||||
receiptMaterialDetailDO.setReceiptStatus(receiptStatus);
|
||||
if (receiptStatus > 2){
|
||||
totalActualReceiptMaterialQuantity += 1;
|
||||
}
|
||||
ReceiptMaterialDetailDO returnReceiptMaterialDetailDO = new ReceiptMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailPO, returnReceiptMaterialDetailDO);
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDO, returnReceiptMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(receiptMaterialDetailDO));
|
||||
if (receiptMaterialDetailPO.getReceiptStatus() == 1){
|
||||
//一级列表 首次收货
|
||||
//是否开启了序列号管理
|
||||
if (receiptMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(receiptMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnReceiptMaterialDetailDO.setMaterialMoreDetailList(receiptMaterialDetailDO.getMaterialMoreDetailList());
|
||||
}else {
|
||||
returnReceiptMaterialDetailDO.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
returnReceiptMaterialDetailDO.setMaterialMoreDetailList(new ArrayList<>());
|
||||
}
|
||||
returnReceiptMaterialDetailDO.setChildren(returnReceiptMaterialDetailDOChildList);
|
||||
returnReceiptMaterialDetailDOList.add(returnReceiptMaterialDetailDO);
|
||||
}
|
||||
returnStockReceiptOrderDO.setMaterialDetailList(returnReceiptMaterialDetailDOList);
|
||||
returnStockReceiptOrderDO.setActualQuantity(totalActualQuantity);
|
||||
returnStockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
return returnStockReceiptOrderDO;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 收货装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private NoReceiptOrderDO assembleParamByNoOrderReceipt(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
NoReceiptOrderDO noReceiptOrderDO = new NoReceiptOrderDO();
|
||||
stockReceiptOrderDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
stockReceiptOrderDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
|
||||
stockReceiptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
stockReceiptOrderDO.setCreateBy(loginUser.getUserid());
|
||||
stockReceiptOrderDO.setCreateByName(loginUser.getUsername());
|
||||
stockReceiptOrderDO.setCreateTime(new Date());
|
||||
stockReceiptOrderDO.setStatus(3);//已收货
|
||||
|
||||
//无单收货默认下发给自己
|
||||
stockReceiptOrderDO.setOperatorsBy(SecurityUtils.getLoginUser().getUserid());
|
||||
//设置作业人员信息
|
||||
operatorsParam(stockReceiptOrderDO);
|
||||
stockReceiptOrderDO.setTaskDistribution(2);
|
||||
stockReceiptOrderDO.setTaskDistributionTime(new Date());
|
||||
BigDecimal totalActualQuantity = BigDecimal.ZERO;//收货单当前作业收货数
|
||||
int totalActualReceiptMaterialQuantity = 0;//收货单收货物料种数
|
||||
//出库单信息
|
||||
StockInOrderDO stockInOrderDO = new StockInOrderDO();
|
||||
BeanUtils.copyProperties(stockReceiptOrderDO, stockInOrderDO);
|
||||
stockInOrderDO.setInOrderNumber(OrderSequence.getOrderCode("RK"));
|
||||
stockInOrderDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
stockInOrderDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
|
||||
stockInOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
stockInOrderDO.setCreateBy(loginUser.getUserid());
|
||||
stockInOrderDO.setCreateByName(loginUser.getUsername());
|
||||
stockInOrderDO.setCreateTime(new Date());
|
||||
stockInOrderDO.setOrderTypeCode("pu_tong_ru_ku_dan");
|
||||
stockInOrderDO.setOrderTypeName("普通入库单");
|
||||
stockInOrderDO.setPriorityLevelCode("zui_gao");
|
||||
stockInOrderDO.setPriorityLevelName("最高");
|
||||
stockInOrderDO.setDirectWarehouse(2);
|
||||
stockInOrderDO.setStatus(4);//上架中
|
||||
stockInOrderDO.setAuditStatus(3);
|
||||
stockInOrderDO.setAuditBy(loginUser.getUserPo().getUserId());
|
||||
stockInOrderDO.setAuditByName(loginUser.getUserPo().getUserName());
|
||||
stockInOrderDO.setAuditTime(new Date());
|
||||
stockInOrderDO.setOrderSource(3);
|
||||
List<InMaterialDetailDO> inMaterialDetailDOList = new ArrayList<>();
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDO : stockReceiptOrderDO.getMaterialDetailList()){
|
||||
//设置物料基本信息
|
||||
setMaterialDetailInfo(receiptMaterialDetailDO);
|
||||
//设置物料更多属性信息
|
||||
setMaterialMoreDetailInfo(receiptMaterialDetailDO);
|
||||
//设置物料状态及容器信息
|
||||
setMaterialMoreDetailInfo(receiptMaterialDetailDO);
|
||||
InMaterialDetailDO inMaterialDetailDO = new InMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDO, inMaterialDetailDO);
|
||||
inMaterialDetailDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
inMaterialDetailDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
|
||||
inMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
inMaterialDetailDO.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
inMaterialDetailDO.setInOrderNumber(stockInOrderDO.getInOrderNumber());
|
||||
inMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getReceiptQuantity());
|
||||
inMaterialDetailDO.setReceiptQuantity(receiptMaterialDetailDO.getReceiptQuantity());
|
||||
inMaterialDetailDO.setLevel(1);
|
||||
inMaterialDetailDO.setCreateBy(loginUser.getUserid());
|
||||
inMaterialDetailDO.setCreateByName(loginUser.getUsername());
|
||||
inMaterialDetailDO.setCreateTime(new Date());
|
||||
|
||||
receiptMaterialDetailDO.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
receiptMaterialDetailDO.setOrganizationName(loginUser.getUserPo().getOrganizationName());
|
||||
receiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
receiptMaterialDetailDO.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
receiptMaterialDetailDO.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
|
||||
receiptMaterialDetailDO.setLevel(1);
|
||||
receiptMaterialDetailDO.setInUniqueId(inMaterialDetailDO.getUniqueId());
|
||||
receiptMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getReceiptQuantity());
|
||||
receiptMaterialDetailDO.setAlreadyReceiptQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity());
|
||||
//设置物料更多属性信息
|
||||
BigDecimal actualQuantity = receiptMaterialDetailDO.getReceiptQuantity();;//当前作业收货数
|
||||
//判断是否存在子项
|
||||
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOChildList = receiptMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(receiptMaterialDetailDOChildList)){
|
||||
for (ReceiptMaterialDetailDO receiptMaterialDetailDOChild : receiptMaterialDetailDOChildList){
|
||||
ReceiptMaterialDetailDO receiptMaterialDetailDOChildByCopy = new ReceiptMaterialDetailDO();
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDO, receiptMaterialDetailDOChildByCopy);
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChild, receiptMaterialDetailDOChildByCopy);
|
||||
receiptMaterialDetailDOChildByCopy.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
receiptMaterialDetailDOChildByCopy.setOrganizationId(loginUser.getUserPo().getOrganizationId());
|
||||
receiptMaterialDetailDOChildByCopy.setOrganizationName(loginUser.getUserPo().getOrganizationName());
|
||||
receiptMaterialDetailDOChildByCopy.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
receiptMaterialDetailDOChildByCopy.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
|
||||
receiptMaterialDetailDOChildByCopy.setLevel(2);
|
||||
receiptMaterialDetailDOChildByCopy.setParentUniqueId(receiptMaterialDetailDO.getUniqueId());
|
||||
receiptMaterialDetailDOChildByCopy.setInUniqueId(inMaterialDetailDO.getUniqueId());
|
||||
receiptMaterialDetailDOChildByCopy.setQuantity(receiptMaterialDetailDOChild.getReceiptQuantity());
|
||||
receiptMaterialDetailDOChildByCopy.setAlreadyReceiptQuantity(receiptMaterialDetailDOChild.getReceiptQuantity());
|
||||
BeanUtils.copyProperties(receiptMaterialDetailDOChildByCopy, receiptMaterialDetailDOChild);
|
||||
//是否开启了序列号管理
|
||||
if (receiptMaterialDetailDO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
actualQuantity = actualQuantity.add(receiptMaterialDetailDOChild.getReceiptQuantity());
|
||||
}
|
||||
}
|
||||
//已收货数量 = 当前作业数量
|
||||
receiptMaterialDetailDO.setAlreadyReceiptQuantity(actualQuantity);
|
||||
//记录本次收货单收货总数
|
||||
totalActualQuantity = totalActualQuantity.add(actualQuantity);
|
||||
receiptMaterialDetailDO.setReceiptStatus(3);
|
||||
totalActualReceiptMaterialQuantity += 1;
|
||||
//一级列表 首次收货
|
||||
//是否开启了序列号管理
|
||||
if (receiptMaterialDetailDO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(receiptMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + receiptMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
inMaterialDetailDO.setQuantity(receiptMaterialDetailDO.getAlreadyReceiptQuantity());
|
||||
inMaterialDetailDOList.add(inMaterialDetailDO);
|
||||
}
|
||||
stockReceiptOrderDO.setReceiptQuantity(totalActualQuantity);
|
||||
stockReceiptOrderDO.setMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
stockReceiptOrderDO.setReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
stockReceiptOrderDO.setActualQuantity(totalActualQuantity);
|
||||
stockReceiptOrderDO.setActualReceiptMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
stockReceiptOrderDO.setInOrderNumber(stockInOrderDO.getInOrderNumber());
|
||||
stockInOrderDO.setQuantity(totalActualQuantity);
|
||||
stockInOrderDO.setMaterialQuantity(totalActualReceiptMaterialQuantity);
|
||||
stockInOrderDO.setMaterialDetailList(inMaterialDetailDOList);
|
||||
noReceiptOrderDO.setStockInOrderDO(stockInOrderDO);
|
||||
noReceiptOrderDO.setStockReceiptOrderDO(stockReceiptOrderDO);
|
||||
return noReceiptOrderDO;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置物料状态及容器信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param receiptMaterialDetailDO
|
||||
*/
|
||||
private void setMaterialMoreDetailInfo(ReceiptMaterialDetailDO receiptMaterialDetailDO){
|
||||
|
||||
if(ObjectUtil.isNotNull(receiptMaterialDetailDO.getMaterialStatusCode())){
|
||||
//翻译物料状态
|
||||
AjaxResult materialsStatusResult = systemServiceFeign.selectListByDictType(DictCode.MATERIALS_STATUS.getCode());
|
||||
if (!"200".equals(String.valueOf(materialsStatusResult.get("code")))) {
|
||||
throw new ServiceException("物料状态数据字典不存在");
|
||||
}
|
||||
List<SysDictData> materialsStatusDataList = JSON.parseArray(JSONUtil.toJsonStr(materialsStatusResult.get("data")), SysDictData.class);
|
||||
|
||||
SysDictData materialsStatusData = materialsStatusDataList.stream().filter(info -> ObjectUtil.equal(info.getDictValue(), receiptMaterialDetailDO.getMaterialStatusCode())).findAny().orElse(null);
|
||||
if (null == materialsStatusData) {
|
||||
throw new ServiceException("物料状态【" + receiptMaterialDetailDO.getMaterialStatusCode() + "】数据字典不存在 请联系管理员");
|
||||
}
|
||||
receiptMaterialDetailDO.setMaterialStatusName(materialsStatusData.getDictLabel());
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotNull(receiptMaterialDetailDO.getContainerId()) && 0 !=receiptMaterialDetailDO.getContainerId()){
|
||||
//获取容器详情
|
||||
AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(receiptMaterialDetailDO.getContainerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取容器信息失败");
|
||||
}
|
||||
ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
receiptMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
receiptMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
|
||||
receiptMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 判断收货数量是否存在超收
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/14 17:50
|
||||
* @param quantity
|
||||
* @param receiptQuantity
|
||||
* @return Integer
|
||||
*/
|
||||
private Integer judgeReceiptQuantity(BigDecimal receiptQuantity, BigDecimal quantity){
|
||||
if (receiptQuantity.compareTo(quantity) > 0){
|
||||
return 5;
|
||||
} else if (receiptQuantity.compareTo(quantity) == 0) {
|
||||
return 3;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置仓库信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/4/7 10:01
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void setWarehouseInfo(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(stockReceiptOrderDO.getWarehouseId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取仓库信息失败");
|
||||
}
|
||||
WarehouseFeignPO warehouseFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
|
||||
stockReceiptOrderDO.setWarehouseCode(warehouseFeignPO.getWarehouseCode());
|
||||
stockReceiptOrderDO.setWarehouseName(warehouseFeignPO.getWarehouseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装货主信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void shipperParam(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getShipperId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取货主信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockReceiptOrderDO.setShipperCode(userPo.getUserMemberCode());
|
||||
stockReceiptOrderDO.setShipperName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装供应商信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockReceiptOrderDO
|
||||
*/
|
||||
private void supplierParam(StockReceiptOrderDO stockReceiptOrderDO){
|
||||
if(ObjectUtil.isNull(stockReceiptOrderDO.getSupplierId())){
|
||||
return;
|
||||
}
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockReceiptOrderDO.getSupplierId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取供应商信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockReceiptOrderDO.setSupplierName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置物料信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param receiptMaterialDetailDO
|
||||
*/
|
||||
private void setMaterialDetailInfo(ReceiptMaterialDetailDO receiptMaterialDetailDO){
|
||||
MaterialBaseInfoPO materialBaseInfoPO = materialBaseInfoService.getInfo(receiptMaterialDetailDO.getMaterialBaseInfoId());
|
||||
if (materialBaseInfoPO == null){
|
||||
throw new ServiceException("物料基础信息不存在");
|
||||
}
|
||||
receiptMaterialDetailDO.setMaterialCode(materialBaseInfoPO.getMaterialCode());
|
||||
receiptMaterialDetailDO.setMaterialName(materialBaseInfoPO.getMaterialName());
|
||||
receiptMaterialDetailDO.setBarCode(materialBaseInfoPO.getBarCode());
|
||||
receiptMaterialDetailDO.setPackId(materialBaseInfoPO.getPackId());
|
||||
receiptMaterialDetailDO.setPackCode(materialBaseInfoPO.getPackCode());
|
||||
receiptMaterialDetailDO.setPackName(materialBaseInfoPO.getPackName());
|
||||
|
||||
//获取包装详情
|
||||
AjaxResult packDetailResult = systemServiceFeign.getInfoByPackIdAndUnitCode(materialBaseInfoPO.getPackId(), "EA");
|
||||
if(!"200".equals(String.valueOf(packDetailResult.get("code")))){
|
||||
throw new ServiceException("获取物料单位EA信息失败");
|
||||
}
|
||||
PackDetailFeignPO packDetailFeignPO = JSON.parseObject(JSONObject.toJSONString(packDetailResult.get("data")), PackDetailFeignPO.class);
|
||||
receiptMaterialDetailDO.setPackDetailId(packDetailFeignPO.getPackDetailId());
|
||||
receiptMaterialDetailDO.setUnitCode(packDetailFeignPO.getUnitCode());
|
||||
receiptMaterialDetailDO.setUnitName(packDetailFeignPO.getName());
|
||||
receiptMaterialDetailDO.setUnitNumber(packDetailFeignPO.getNumber());
|
||||
|
||||
//获取仓库控制信息
|
||||
MaterialWarehouseControlPO materialWarehouseControlPO = materialWarehouseControlService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||
if (materialWarehouseControlPO == null){
|
||||
throw new ServiceException("物料仓库控制信息不存在");
|
||||
}
|
||||
receiptMaterialDetailDO.setMaterialWarehouseControlId(materialWarehouseControlPO.getMaterialWarehouseControlId());
|
||||
receiptMaterialDetailDO.setSerialNumberManage(materialWarehouseControlPO.getSerialNumberManage());
|
||||
receiptMaterialDetailDO.setQualityInspectionManage(materialWarehouseControlPO.getQualityInspectionManage());
|
||||
receiptMaterialDetailDO.setQualityInspectionStage(materialWarehouseControlPO.getQualityInspectionStage());
|
||||
receiptMaterialDetailDO.setQualityInspectionRule(materialWarehouseControlPO.getQualityInspectionRule());
|
||||
receiptMaterialDetailDO.setQualityInspectionTerm(materialWarehouseControlPO.getQualityInspectionTerm());
|
||||
receiptMaterialDetailDO.setAllowOvercharge(materialWarehouseControlPO.getAllowOvercharge());
|
||||
receiptMaterialDetailDO.setOverchargeRatio(materialWarehouseControlPO.getOverchargeRatio());
|
||||
|
||||
//获取商品规则信息
|
||||
MaterialGoodsRulePO materialGoodsRulePO = materialGoodsRuleService.getInfoByMaterialBaseInfoIds(materialBaseInfoPO.getMaterialBaseInfoId());
|
||||
if (materialGoodsRulePO == null){
|
||||
throw new ServiceException("物料商品规则信息不存在");
|
||||
}
|
||||
receiptMaterialDetailDO.setDistributeRuleId(materialGoodsRulePO.getMaterialGoodsRuleId());
|
||||
receiptMaterialDetailDO.setDistributeRuleCode(materialGoodsRulePO.getRuleCode());
|
||||
receiptMaterialDetailDO.setDistributeRuleName(materialGoodsRulePO.getRuleName());
|
||||
}
|
||||
}
|
||||
+381
@@ -0,0 +1,381 @@
|
||||
package com.mhd.wms.application.service.stockShelfOrder;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.domain.ContainerFeignPO;
|
||||
import com.mhd.system.api.domain.StorageLocationFeignPO;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.po.ShelfMaterialDetailPO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.service.ShelfMaterialDetailDomainService;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 上架单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class StockShelfOrderApplicationService {
|
||||
@Autowired
|
||||
private StockShelfOrderDomainService stockShelfOrderDomainService;
|
||||
@Autowired
|
||||
private ShelfMaterialDetailDomainService shelfMaterialDetailDomainService;
|
||||
@Autowired
|
||||
private UserServiceFeign userServiceFeign;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Autowired
|
||||
private IdGenerator idGenerator;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询上架单列表
|
||||
*/
|
||||
|
||||
public List<StockShelfOrderPO> queryList(StockShelfOrderDO stockShelfOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
stockShelfOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
stockShelfOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return stockShelfOrderDomainService.queryList(stockShelfOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增上架单
|
||||
*/
|
||||
public Boolean insert(StockShelfOrderDO stockShelfOrderDO) {
|
||||
|
||||
return stockShelfOrderDomainService.insert(stockShelfOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改上架单
|
||||
*/
|
||||
public Boolean update(StockShelfOrderDO stockShelfOrderDO) {
|
||||
return stockShelfOrderDomainService.update(stockShelfOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除上架单
|
||||
*/
|
||||
public boolean delete(Long[] shelfOrderIds) {
|
||||
return stockShelfOrderDomainService.delete(shelfOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架单详细信息
|
||||
*/
|
||||
public StockShelfOrderPO getInfo(Long shelfOrderId)
|
||||
{
|
||||
return stockShelfOrderDomainService.getInfo(shelfOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架单详细信息
|
||||
*/
|
||||
public StockShelfOrderPO getInfoByApp(Long shelfOrderId) {
|
||||
return stockShelfOrderDomainService.getInfoByApp(shelfOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 任务下发
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 17:13
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean taskDistribution(StockShelfOrderDO stockReceiptOrderDO){
|
||||
//设置作业人员信息
|
||||
operatorsParam(stockReceiptOrderDO);
|
||||
return stockShelfOrderDomainService.taskDistribution(stockReceiptOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 上架
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 17:13
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean upShelf(StockShelfOrderDO stockReceiptOrderDO){
|
||||
//上架装配参数
|
||||
StockShelfOrderDO assembleStockShelfOrderDO = assembleParamByShelf(stockReceiptOrderDO);
|
||||
return stockShelfOrderDomainService.upShelf(assembleStockShelfOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 16:20
|
||||
* @param stockReceiptOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean upShelfByApp(StockShelfOrderDO stockReceiptOrderDO){
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOList = stockReceiptOrderDO.getMaterialDetailList();
|
||||
shelfMaterialDetailDOList.forEach(shelfMaterialDetailDO -> {
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOChildrenList1 = shelfMaterialDetailDO.getChildren();
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOChildren = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 1 == p.getLevel()).collect(Collectors.toList()).get(0);
|
||||
shelfMaterialDetailDO.setMaterialDetailId(shelfMaterialDetailDOChildren.getMaterialDetailId());
|
||||
shelfMaterialDetailDO.setShelvesQuantity(shelfMaterialDetailDOChildren.getShelvesQuantity());
|
||||
shelfMaterialDetailDO.setWarehouseId(shelfMaterialDetailDOChildren.getWarehouseId());
|
||||
shelfMaterialDetailDO.setStorageSectionId(shelfMaterialDetailDOChildren.getStorageSectionId());
|
||||
shelfMaterialDetailDO.setStorageLocationId(shelfMaterialDetailDOChildren.getStorageLocationId());
|
||||
shelfMaterialDetailDO.setContainerId(shelfMaterialDetailDOChildren.getContainerId());
|
||||
shelfMaterialDetailDO.setLevel(shelfMaterialDetailDOChildren.getLevel());
|
||||
shelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChildren.getMaterialDetailSerialNumberList());
|
||||
//只留二级
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOChildrenList2 = shelfMaterialDetailDOChildrenList1.stream().filter(p -> 2 == p.getLevel()).collect(Collectors.toList());
|
||||
shelfMaterialDetailDO.setChildren(shelfMaterialDetailDOChildrenList2);
|
||||
});
|
||||
//上架装配参数
|
||||
StockShelfOrderDO assembleStockShelfOrderDO = assembleParamByShelf(stockReceiptOrderDO);
|
||||
return stockShelfOrderDomainService.upShelf(assembleStockShelfOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 完成上架
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 17:13
|
||||
* @param shelfOrderId
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean completeUpShelf(Long shelfOrderId){
|
||||
return stockShelfOrderDomainService.completeUpShelf(shelfOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 封装作业人员信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/9 20:43
|
||||
* @param stockShelfOrderDO
|
||||
*/
|
||||
private void operatorsParam(StockShelfOrderDO stockShelfOrderDO){
|
||||
AjaxResult ajaxResult = userServiceFeign.getInfo(stockShelfOrderDO.getOperatorsBy());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取作业人员信息失败");
|
||||
}
|
||||
UserPo userPo = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), UserPo.class);
|
||||
stockShelfOrderDO.setOperatorsName(userPo.getUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 收货装配参数
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/22 9:27
|
||||
* @param stockShelfOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
private StockShelfOrderDO assembleParamByShelf(StockShelfOrderDO stockShelfOrderDO) {
|
||||
StockShelfOrderPO stockShelfOrderPO = stockShelfOrderDomainService.getInfo(stockShelfOrderDO.getShelfOrderId());
|
||||
if (stockShelfOrderPO == null){
|
||||
throw new ServiceException("上架单不存在");
|
||||
}
|
||||
if (stockShelfOrderPO.getStatus() > 2) {
|
||||
throw new ServiceException("上架单已完成上架");
|
||||
}
|
||||
StockShelfOrderDO returnStockShelfOrderDO = new StockShelfOrderDO();
|
||||
BeanUtils.copyProperties(stockShelfOrderDO, returnStockShelfOrderDO);
|
||||
returnStockShelfOrderDO.setShelfOrderId(stockShelfOrderPO.getShelfOrderId());
|
||||
returnStockShelfOrderDO.setUpdateTime(stockShelfOrderDO.getUpdateTime());
|
||||
returnStockShelfOrderDO.setOrganizationId(stockShelfOrderPO.getOrganizationId());
|
||||
returnStockShelfOrderDO.setOrganizationName(stockShelfOrderPO.getOrganizationName());
|
||||
returnStockShelfOrderDO.setTopOrganizationId(stockShelfOrderPO.getTopOrganizationId());
|
||||
returnStockShelfOrderDO.setWarehouseId(stockShelfOrderPO.getWarehouseId());
|
||||
returnStockShelfOrderDO.setWarehouseCode(stockShelfOrderPO.getWarehouseCode());
|
||||
returnStockShelfOrderDO.setWarehouseName(stockShelfOrderPO.getWarehouseName());
|
||||
returnStockShelfOrderDO.setInOrderNumber(stockShelfOrderPO.getInOrderNumber());
|
||||
returnStockShelfOrderDO.setReceiptOrderNumber(stockShelfOrderPO.getReceiptOrderNumber());
|
||||
returnStockShelfOrderDO.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
|
||||
ShelfMaterialDetailDO shelfMaterialDetailDOByQuery = new ShelfMaterialDetailDO();
|
||||
shelfMaterialDetailDOByQuery.setShelfOrderNumber(stockShelfOrderPO.getShelfOrderNumber());
|
||||
List<ShelfMaterialDetailPO> shelfMaterialDetailPODbList = shelfMaterialDetailDomainService.queryList(shelfMaterialDetailDOByQuery);
|
||||
Map<Long, ShelfMaterialDetailPO> receiptMaterialDetailDbMap = shelfMaterialDetailPODbList.stream().collect(Collectors.toMap(ShelfMaterialDetailPO::getMaterialDetailId, Function.identity()));
|
||||
BigDecimal totalActualQuantity = BigDecimal.ZERO;//上架单当前作业收货数
|
||||
int totalActualShelfMaterialQuantity = 0;//上架单收货物料种数
|
||||
List<ShelfMaterialDetailDO> returnShelfMaterialDetailDOList = new ArrayList<>();
|
||||
for (ShelfMaterialDetailDO shelfMaterialDetailDO : stockShelfOrderDO.getMaterialDetailList()){
|
||||
//设置物料更多属性信息
|
||||
ShelfMaterialDetailPO shelfMaterialDetailPO = receiptMaterialDetailDbMap.get(shelfMaterialDetailDO.getMaterialDetailId());
|
||||
if (shelfMaterialDetailPO == null){
|
||||
throw new ServiceException("物料明细不存在");
|
||||
}
|
||||
if (shelfMaterialDetailDO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//未进行上架直接跳过
|
||||
continue;
|
||||
}
|
||||
BigDecimal actualQuantity = BigDecimal.ZERO;//当前作业上架数
|
||||
//判断收否上架 第一次收货创建 更多属性 序列号
|
||||
if (shelfMaterialDetailPO.getShelvesQuantity().compareTo(BigDecimal.ZERO) == 0){
|
||||
//设置上架信息
|
||||
setStorageLocationInfo(shelfMaterialDetailDO);
|
||||
//设置容器信息
|
||||
setContainerInfo(shelfMaterialDetailDO);
|
||||
//上架后 设置该记录不允许被修改
|
||||
shelfMaterialDetailDO.setAllowModify(2);
|
||||
//未上过架 统计到当前收货单作业收货数
|
||||
actualQuantity = shelfMaterialDetailDO.getShelvesQuantity();
|
||||
}
|
||||
//判断是否存在子项
|
||||
List<ShelfMaterialDetailDO> returnShelfMaterialDetailDOChildList = new ArrayList<>();
|
||||
List<ShelfMaterialDetailDO> shelfMaterialDetailDOChildList = shelfMaterialDetailDO.getChildren();
|
||||
if (!CollectionUtils.isEmpty(shelfMaterialDetailDOChildList)){
|
||||
for (ShelfMaterialDetailDO shelfMaterialDetailDOChild : shelfMaterialDetailDOChildList){
|
||||
ShelfMaterialDetailPO shelfMaterialDetailPOChildDb = receiptMaterialDetailDbMap.get(shelfMaterialDetailDOChild.getMaterialDetailId());
|
||||
if (shelfMaterialDetailPOChildDb != null){
|
||||
continue;
|
||||
}
|
||||
ShelfMaterialDetailDO returnShelfMaterialDetailDOChild = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(shelfMaterialDetailPO, returnShelfMaterialDetailDOChild, "materialDetailId","createBy","createByName","createTime",
|
||||
"updateBy","updateByName","updateTime");
|
||||
BeanUtils.copyProperties(shelfMaterialDetailDOChild, returnShelfMaterialDetailDOChild, IgnoreNullUtil.getNullPropertyNames(shelfMaterialDetailDOChild));
|
||||
//设置上架信息
|
||||
setStorageLocationInfo(shelfMaterialDetailDOChild);
|
||||
//设置容器信息
|
||||
setContainerInfo(returnShelfMaterialDetailDOChild);
|
||||
//上架后 设置该记录不允许被修改
|
||||
shelfMaterialDetailDO.setAllowModify(2);
|
||||
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDOChild.getMaterialDetailSerialNumberList());
|
||||
returnShelfMaterialDetailDOChild.setUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
returnShelfMaterialDetailDOChild.setLevel(2);
|
||||
returnShelfMaterialDetailDOChild.setParentUniqueId(shelfMaterialDetailPO.getUniqueId());
|
||||
//是否开启了序列号管理
|
||||
if (shelfMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(shelfMaterialDetailPO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + shelfMaterialDetailPO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnShelfMaterialDetailDOChild.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
returnShelfMaterialDetailDOChildList.add(returnShelfMaterialDetailDOChild);
|
||||
actualQuantity = actualQuantity.add(returnShelfMaterialDetailDOChild.getShelvesQuantity());
|
||||
}
|
||||
}
|
||||
//现在已上架数量=之前已上架数量+现在作业数量
|
||||
shelfMaterialDetailDO.setAlreadyShelvesQuantity(shelfMaterialDetailPO.getAlreadyShelvesQuantity().add(actualQuantity));
|
||||
//记录本次上架单上架总数
|
||||
totalActualQuantity = totalActualQuantity.add(actualQuantity);
|
||||
//判断上架数量是否大于计划数量
|
||||
Integer shelvesStatus = judgeShelfQuantity(shelfMaterialDetailDO.getAlreadyShelvesQuantity(), shelfMaterialDetailPO.getQuantity());
|
||||
shelfMaterialDetailDO.setShelvesStatus(shelvesStatus);
|
||||
if (shelvesStatus > 2){
|
||||
totalActualShelfMaterialQuantity += 1;
|
||||
}
|
||||
ShelfMaterialDetailDO returnShelfMaterialDetailDO = new ShelfMaterialDetailDO();
|
||||
BeanUtils.copyProperties(shelfMaterialDetailPO, returnShelfMaterialDetailDO);
|
||||
BeanUtils.copyProperties(shelfMaterialDetailDO, returnShelfMaterialDetailDO, IgnoreNullUtil.getNullPropertyNames(shelfMaterialDetailDO));
|
||||
if (shelfMaterialDetailPO.getShelvesStatus() == 1){
|
||||
//首次上架
|
||||
//是否开启了序列号管理
|
||||
if (shelfMaterialDetailPO.getSerialNumberManage() == 1){
|
||||
if (CollectionUtils.isEmpty(shelfMaterialDetailDO.getMaterialDetailSerialNumberList())){
|
||||
throw new ServiceException("物料【" + shelfMaterialDetailDO.getMaterialName() + "】开启了序列号管理的序列号不能为空");
|
||||
}
|
||||
}
|
||||
returnShelfMaterialDetailDO.setMaterialDetailSerialNumberList(shelfMaterialDetailDO.getMaterialDetailSerialNumberList());
|
||||
}else {
|
||||
returnShelfMaterialDetailDO.setMaterialDetailSerialNumberList(new ArrayList<>());
|
||||
}
|
||||
returnShelfMaterialDetailDO.setChildren(returnShelfMaterialDetailDOChildList);
|
||||
returnShelfMaterialDetailDOList.add(returnShelfMaterialDetailDO);
|
||||
}
|
||||
returnStockShelfOrderDO.setMaterialDetailList(returnShelfMaterialDetailDOList);
|
||||
returnStockShelfOrderDO.setActualQuantity(totalActualQuantity);
|
||||
returnStockShelfOrderDO.setActualReceiptMaterialQuantity(totalActualShelfMaterialQuantity);
|
||||
return returnStockShelfOrderDO;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置上架库位信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param shelfMaterialDetailDO
|
||||
*/
|
||||
private void setStorageLocationInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
|
||||
AjaxResult storageLocationResult = systemServiceFeign.getStorageLocationInfoByStorageLocationId(shelfMaterialDetailDO.getStorageLocationId());
|
||||
if(!"200".equals(String.valueOf(storageLocationResult.get("code")))){
|
||||
throw new ServiceException("获取上架库位信息失败");
|
||||
}
|
||||
StorageLocationFeignPO storageLocationFeignPO = JSON.parseObject(JSONObject.toJSONString(storageLocationResult.get("data")), StorageLocationFeignPO.class);
|
||||
shelfMaterialDetailDO.setWarehouseId(storageLocationFeignPO.getWarehouseId());
|
||||
shelfMaterialDetailDO.setWarehouseCode(storageLocationFeignPO.getWarehouseCode());
|
||||
shelfMaterialDetailDO.setWarehouseName(storageLocationFeignPO.getWarehouseName());
|
||||
shelfMaterialDetailDO.setStorageSectionId(storageLocationFeignPO.getStorageSectionId());
|
||||
shelfMaterialDetailDO.setStorageCode(storageLocationFeignPO.getStorageCode());
|
||||
shelfMaterialDetailDO.setStorageName(storageLocationFeignPO.getStorageName());
|
||||
shelfMaterialDetailDO.setStorageLocationId(storageLocationFeignPO.getStorageLocationId());
|
||||
shelfMaterialDetailDO.setStorageLocationCode(storageLocationFeignPO.getStorageLocationCode());
|
||||
shelfMaterialDetailDO.setStorageLocationName(storageLocationFeignPO.getStorageLocationName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 设置物料状态及容器信息
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/23 14:03
|
||||
* @param shelfMaterialDetailDO
|
||||
*/
|
||||
private void setContainerInfo(ShelfMaterialDetailDO shelfMaterialDetailDO){
|
||||
|
||||
//获取容器详情
|
||||
AjaxResult ajaxResult = systemServiceFeign.getContainerInfoByContainerId(shelfMaterialDetailDO.getContainerId());
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("获取容器信息失败");
|
||||
}
|
||||
ContainerFeignPO containerFeignPO = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), ContainerFeignPO.class);
|
||||
shelfMaterialDetailDO.setContainerCode(containerFeignPO.getContainerCode());
|
||||
shelfMaterialDetailDO.setContainerType(containerFeignPO.getContainerType());
|
||||
shelfMaterialDetailDO.setContainerTypeName(containerFeignPO.getContainerTypeName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 判断上架数量是否存在超收
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/14 17:50
|
||||
* @param quantity
|
||||
* @param shelfQuantity
|
||||
* @return Integer
|
||||
*/
|
||||
private Integer judgeShelfQuantity(BigDecimal shelfQuantity, BigDecimal quantity){
|
||||
if (shelfQuantity.compareTo(quantity) > 0){
|
||||
return 5;
|
||||
} else if (shelfQuantity.compareTo(quantity) == 0) {
|
||||
return 3;
|
||||
} else {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.taskReceiptMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.po.TaskReceiptMaterialDetailPO;
|
||||
import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.todo.TaskReceiptMaterialDetailDO;
|
||||
import com.mhd.wms.domain.taskReceiptMaterialDetail.service.TaskReceiptMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 收货作业单物料详情ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-19
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class TaskReceiptMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private TaskReceiptMaterialDetailDomainService taskReceiptMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询收货作业单物料详情列表
|
||||
*/
|
||||
|
||||
public List<TaskReceiptMaterialDetailPO> queryList(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
taskReceiptMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return taskReceiptMaterialDetailDomainService.queryList(taskReceiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增收货作业单物料详情
|
||||
*/
|
||||
public Boolean insert(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
|
||||
|
||||
return taskReceiptMaterialDetailDomainService.insert(taskReceiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收货作业单物料详情
|
||||
*/
|
||||
public Boolean update(TaskReceiptMaterialDetailDO taskReceiptMaterialDetailDO) {
|
||||
return taskReceiptMaterialDetailDomainService.update(taskReceiptMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除收货作业单物料详情
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailIds) {
|
||||
return taskReceiptMaterialDetailDomainService.delete(materialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收货作业单物料详情详细信息
|
||||
*/
|
||||
public TaskReceiptMaterialDetailPO getInfo(Long materialDetailId)
|
||||
{
|
||||
return taskReceiptMaterialDetailDomainService.getInfo(materialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.taskShelfMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.taskShelfMaterialDetail.repository.po.TaskShelfMaterialDetailPO;
|
||||
import com.mhd.wms.domain.taskShelfMaterialDetail.repository.todo.TaskShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.taskShelfMaterialDetail.service.TaskShelfMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 上架作业物料详情ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-19
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class TaskShelfMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private TaskShelfMaterialDetailDomainService taskShelfMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询上架作业物料详情列表
|
||||
*/
|
||||
|
||||
public List<TaskShelfMaterialDetailPO> queryList(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
taskShelfMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return taskShelfMaterialDetailDomainService.queryList(taskShelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增上架作业物料详情
|
||||
*/
|
||||
public Boolean insert(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
|
||||
|
||||
return taskShelfMaterialDetailDomainService.insert(taskShelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改上架作业物料详情
|
||||
*/
|
||||
public Boolean update(TaskShelfMaterialDetailDO taskShelfMaterialDetailDO) {
|
||||
return taskShelfMaterialDetailDomainService.update(taskShelfMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除上架作业物料详情
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailIds) {
|
||||
return taskShelfMaterialDetailDomainService.delete(materialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上架作业物料详情详细信息
|
||||
*/
|
||||
public TaskShelfMaterialDetailPO getInfo(Long materialDetailId)
|
||||
{
|
||||
return taskShelfMaterialDetailDomainService.getInfo(materialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
package com.mhd.wms.application.service.userCommonSettings;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.service.CommonSettingsDomainService;
|
||||
import com.mhd.wms.domain.userCommonSettings.repository.po.UserCommonSettingsPO;
|
||||
import com.mhd.wms.domain.userCommonSettings.repository.todo.UserCommonSettingsDO;
|
||||
import com.mhd.wms.domain.userCommonSettings.service.UserCommonSettingsDomainService;
|
||||
import com.mhd.wms.interfaces.dto.userCommonSettings.UserCommonSettingsAddDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户常用设置关联ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UserCommonSettingsApplicationService {
|
||||
@Autowired
|
||||
private UserCommonSettingsDomainService userCommonSettingsDomainService;
|
||||
@Autowired
|
||||
private CommonSettingsDomainService commonSettingsDomainService;
|
||||
|
||||
/**
|
||||
* 分页查询用户常用设置关联列表
|
||||
*/
|
||||
|
||||
public List<UserCommonSettingsPO> queryList(UserCommonSettingsDO userCommonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
userCommonSettingsDO.setUserId(loginUser.getUserid());
|
||||
}
|
||||
}
|
||||
return userCommonSettingsDomainService.queryList(userCommonSettingsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增用户常用设置关联
|
||||
*/
|
||||
public Boolean insert(UserCommonSettingsDO userCommonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
deleteByUserId(loginUser.getUserid());
|
||||
List<UserCommonSettingsAddDTO> commonSettingsIddList=userCommonSettingsDO.getUserCommonSettingsAddDTOList();
|
||||
Boolean isTrue=true;
|
||||
for (UserCommonSettingsAddDTO userCommonSettingsAddDTO:commonSettingsIddList){
|
||||
|
||||
CommonSettingsPO commonSettings=commonSettingsDomainService.getInfo(userCommonSettingsAddDTO.getCommonSettingsId());
|
||||
if(ObjectUtil.isNotNull(commonSettings)){
|
||||
UserCommonSettingsDO userCommonSettingsDO1=new UserCommonSettingsDO();
|
||||
userCommonSettingsDO1.setUserId(loginUser.getUserid());
|
||||
userCommonSettingsDO1.setCommonSettingsId(userCommonSettingsAddDTO.getCommonSettingsId());
|
||||
userCommonSettingsDO1.setName(commonSettings.getName());
|
||||
userCommonSettingsDO1.setRoute(commonSettings.getRoute());
|
||||
userCommonSettingsDO1.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
userCommonSettingsDO1.setCreateBy(loginUser.getUserid());
|
||||
userCommonSettingsDO1.setCreateByName(loginUser.getUsername());
|
||||
userCommonSettingsDO1.setCreateTime(new Date());
|
||||
userCommonSettingsDO1.setUpdateBy(loginUser.getUserid());
|
||||
userCommonSettingsDO1.setUpdateByName(loginUser.getUsername());
|
||||
userCommonSettingsDO1.setUpdateTime(new Date());
|
||||
userCommonSettingsDO1.setDelFlag(1);
|
||||
userCommonSettingsDO1.setIsSettings(userCommonSettingsAddDTO.getIsSettings());
|
||||
boolean isFalse=userCommonSettingsDomainService.insert(userCommonSettingsDO1);
|
||||
if(isFalse=false){
|
||||
isTrue=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return isTrue;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户常用设置关联
|
||||
*/
|
||||
public Boolean update(UserCommonSettingsDO userCommonSettingsDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
userCommonSettingsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
//deleteByUserId(loginUser.getUserid());
|
||||
return userCommonSettingsDomainService.update(userCommonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户常用设置关联
|
||||
*/
|
||||
public boolean delete(Long[] userCommonSettingsIds) {
|
||||
return userCommonSettingsDomainService.delete(userCommonSettingsIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户常用设置关联详细信息
|
||||
*/
|
||||
public UserCommonSettingsPO getInfo(Long userCommonSettingsId)
|
||||
{
|
||||
return userCommonSettingsDomainService.getInfo(userCommonSettingsId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户id批量删除用户常用设置关联
|
||||
*/
|
||||
public boolean deleteByUserId(Long userId) {
|
||||
return userCommonSettingsDomainService.deleteByUserId(userId);
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.application.service.waveMaterialDetail;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.waveMaterialDetail.repository.po.WaveMaterialDetailPO;
|
||||
import com.mhd.wms.domain.waveMaterialDetail.repository.todo.WaveMaterialDetailDO;
|
||||
import com.mhd.wms.domain.waveMaterialDetail.service.WaveMaterialDetailDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 出库单物料明细ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-27
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class WaveMaterialDetailApplicationService {
|
||||
@Autowired
|
||||
private WaveMaterialDetailDomainService waveMaterialDetailDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询出库单物料明细列表
|
||||
*/
|
||||
|
||||
public List<WaveMaterialDetailPO> queryList(WaveMaterialDetailDO waveMaterialDetailDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
waveMaterialDetailDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return waveMaterialDetailDomainService.queryList(waveMaterialDetailDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增出库单物料明细
|
||||
*/
|
||||
public Boolean insert(WaveMaterialDetailDO waveMaterialDetailDO) {
|
||||
|
||||
return waveMaterialDetailDomainService.insert(waveMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改出库单物料明细
|
||||
*/
|
||||
public Boolean update(WaveMaterialDetailDO waveMaterialDetailDO) {
|
||||
return waveMaterialDetailDomainService.update(waveMaterialDetailDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除出库单物料明细
|
||||
*/
|
||||
public boolean delete(Long[] materialDetailIds) {
|
||||
return waveMaterialDetailDomainService.delete(materialDetailIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取出库单物料明细详细信息
|
||||
*/
|
||||
public WaveMaterialDetailPO getInfo(Long materialDetailId)
|
||||
{
|
||||
return waveMaterialDetailDomainService.getInfo(materialDetailId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
package com.mhd.wms.application.service.waveOrder;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
|
||||
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.waveOrder.repository.po.WaveOrderPO;
|
||||
import com.mhd.wms.domain.waveOrder.repository.todo.WaveOrderDO;
|
||||
import com.mhd.wms.domain.waveOrder.service.WaveOrderDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 波次单ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-04
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class WaveOrderApplicationService {
|
||||
@Autowired
|
||||
private WaveOrderDomainService waveOrderDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询波次单列表
|
||||
*/
|
||||
|
||||
public List<WaveOrderPO> queryList(WaveOrderDO waveOrderDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
waveOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
AssociationWarehouseCacheDO associationWarehouseCacheDO = SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
|
||||
waveOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
|
||||
}
|
||||
return waveOrderDomainService.queryList(waveOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增波次单
|
||||
*/
|
||||
public Boolean insert(WaveOrderDO waveOrderDO) {
|
||||
|
||||
return waveOrderDomainService.insert(waveOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改波次单
|
||||
*/
|
||||
public Boolean update(WaveOrderDO waveOrderDO) {
|
||||
return waveOrderDomainService.update(waveOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除波次单
|
||||
*/
|
||||
public boolean delete(Long[] waveOrderIds) {
|
||||
return waveOrderDomainService.delete(waveOrderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取波次单详细信息
|
||||
*/
|
||||
public WaveOrderPO getInfo(Long waveOrderId)
|
||||
{
|
||||
return waveOrderDomainService.getInfo(waveOrderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 手动分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param waveOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean manualAssign(WaveOrderDO waveOrderDO){
|
||||
return waveOrderDomainService.manualAssign(waveOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 取消分配
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param waveOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean cancelAssign(WaveOrderDO waveOrderDO){
|
||||
return waveOrderDomainService.cancelAssign(waveOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 取消波次
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param waveOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean cancelWave(WaveOrderDO waveOrderDO){
|
||||
return waveOrderDomainService.cancelWave(waveOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 生成拣货单
|
||||
* @author ZhouGY
|
||||
* @date 2024/5/28 13:47
|
||||
* @param waveOrderDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean genPickingOrder(WaveOrderDO waveOrderDO){
|
||||
return waveOrderDomainService.genPickingOrder(waveOrderDO);
|
||||
}
|
||||
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package com.mhd.wms.application.service.waveRule;
|
||||
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.waveRule.repository.po.WaveRulePO;
|
||||
import com.mhd.wms.domain.waveRule.repository.todo.WaveRuleDO;
|
||||
import com.mhd.wms.domain.waveRule.service.WaveRuleDomainService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 波次规则ApplicationService
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-23
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class WaveRuleApplicationService {
|
||||
@Autowired
|
||||
private WaveRuleDomainService waveRuleDomainService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询波次规则列表
|
||||
*/
|
||||
|
||||
public List<WaveRulePO> queryList(WaveRuleDO waveRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
waveRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return waveRuleDomainService.queryList(waveRuleDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增波次规则
|
||||
*/
|
||||
public Boolean insert(WaveRuleDO waveRuleDO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (loginUser != null){
|
||||
Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
|
||||
if (topOrganizationId != null && topOrganizationId != 1){
|
||||
waveRuleDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
}
|
||||
}
|
||||
return waveRuleDomainService.insert(waveRuleDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改波次规则
|
||||
*/
|
||||
public Boolean update(WaveRuleDO waveRuleDO) {
|
||||
return waveRuleDomainService.update(waveRuleDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除波次规则
|
||||
*/
|
||||
public boolean delete(Long[] ids) {
|
||||
return waveRuleDomainService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取波次规则详细信息
|
||||
*/
|
||||
public WaveRulePO getInfo(Long id)
|
||||
{
|
||||
return waveRuleDomainService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.mhd.wms.domain.commonSettings.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 常用设置对象 common_settings
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class CommonSettings extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("常用设置id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long commonSettingsId;
|
||||
|
||||
@ApiModelProperty("所属上级id")
|
||||
@Excel(name = "所属上级id")
|
||||
private Long parentId;
|
||||
|
||||
@ApiModelProperty("名称")
|
||||
@Excel(name = "名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("route")
|
||||
@Excel(name = "route")
|
||||
private String route;
|
||||
|
||||
@ApiModelProperty("级别 1-一级 2-二级")
|
||||
@Excel(name = "级别 1-一级 2-二级")
|
||||
private Long level;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.mhd.wms.domain.commonSettings.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用设置Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
public interface ICommonSettingsService extends IService<CommonSettings>
|
||||
{
|
||||
/**
|
||||
* 分页查询常用设置列表
|
||||
*/
|
||||
public List<CommonSettingsPO> queryList(CommonSettingsDO commonSettingsDO);
|
||||
|
||||
/**
|
||||
* 新增常用设置
|
||||
*/
|
||||
public Boolean insert(CommonSettingsDO commonSettingsDO);
|
||||
|
||||
/**
|
||||
* 修改常用设置
|
||||
*/
|
||||
public Boolean update(CommonSettingsDO commonSettingsDO);
|
||||
|
||||
/**
|
||||
* 批量删除常用设置
|
||||
*/
|
||||
public Boolean delete(Long[] commonSettingsIds);
|
||||
|
||||
|
||||
/**
|
||||
* 查询常用设置
|
||||
*/
|
||||
public CommonSettingsPO getInfo(Long commonSettingsId);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.wms.domain.commonSettings.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用设置Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
public interface CommonSettingsMapper extends BaseMapper<CommonSettings>
|
||||
{
|
||||
/**
|
||||
* 查询常用设置列表
|
||||
*/
|
||||
public List<CommonSettingsPO> queryList(CommonSettingsDO commonSettingsDO);
|
||||
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
package com.mhd.wms.domain.commonSettings.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.wms.domain.commonSettings.entity.CommonSettings;
|
||||
import com.mhd.wms.domain.commonSettings.repository.facade.ICommonSettingsService;
|
||||
import com.mhd.wms.domain.commonSettings.repository.mapper.CommonSettingsMapper;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用设置Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Service
|
||||
public class CommonSettingsImpl extends ServiceImpl<CommonSettingsMapper, CommonSettings> implements ICommonSettingsService{
|
||||
@Autowired
|
||||
private CommonSettingsMapper commonSettingsMapper;
|
||||
|
||||
/**
|
||||
* 查询常用设置列表
|
||||
*/
|
||||
@Override
|
||||
public List<CommonSettingsPO> queryList(CommonSettingsDO commonSettingsDO)
|
||||
{
|
||||
return commonSettingsMapper.queryList(commonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增常用设置
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(CommonSettingsDO commonSettingsDO) {
|
||||
CommonSettings commonSettings = new CommonSettings();
|
||||
BeanUtils.copyProperties(commonSettingsDO,commonSettings);
|
||||
return this.save(commonSettings);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改常用设置
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(CommonSettingsDO commonSettingsDO) {
|
||||
CommonSettings commonSettings = new CommonSettings();
|
||||
BeanUtils.copyProperties(commonSettingsDO,commonSettings);
|
||||
return this.updateById(commonSettings);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除常用设置
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] commonSettingsIds ) {
|
||||
List<CommonSettings> list = new ArrayList<>();
|
||||
for (Long id : commonSettingsIds) {
|
||||
CommonSettings commonSettings = new CommonSettings();
|
||||
commonSettings.setCommonSettingsId(id);
|
||||
commonSettings.setDelFlag(2);
|
||||
list.add(commonSettings);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改常用设置
|
||||
*/
|
||||
@Override
|
||||
public CommonSettingsPO getInfo(Long commonSettingsId) {
|
||||
CommonSettings commonSettings = this.getById(commonSettingsId);
|
||||
CommonSettingsPO commonSettingsPO = new CommonSettingsPO();
|
||||
BeanUtils.copyProperties(commonSettings,commonSettingsPO);
|
||||
return commonSettingsPO;
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.mhd.wms.domain.commonSettings.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 常用设置对象 common_settings
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "常用设置对象", description = "常用设置响应对象")
|
||||
public class CommonSettingsPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("常用设置id")
|
||||
private Long commonSettingsId;
|
||||
|
||||
@ApiModelProperty("所属上级id")
|
||||
@Excel(name = "所属上级id")
|
||||
private Long parentId;
|
||||
|
||||
@ApiModelProperty("名称")
|
||||
@Excel(name = "名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("route")
|
||||
@Excel(name = "route")
|
||||
private String route;
|
||||
|
||||
@ApiModelProperty("级别 1-一级 2-二级")
|
||||
@Excel(name = "级别 1-一级 2-二级")
|
||||
private Long level;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("是否设置为常用 0-否 1-是")
|
||||
@Excel(name = "是否设置为常用 0-否 1-是")
|
||||
private Integer isSettings;
|
||||
|
||||
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.mhd.wms.domain.commonSettings.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 常用设置对象 common_settings
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class CommonSettingsDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("常用设置id")
|
||||
private Long commonSettingsId;
|
||||
|
||||
@ApiModelProperty("所属上级id")
|
||||
@Excel(name = "所属上级id")
|
||||
private Long parentId;
|
||||
|
||||
@ApiModelProperty("名称")
|
||||
@Excel(name = "名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("route")
|
||||
@Excel(name = "route")
|
||||
private String route;
|
||||
|
||||
@ApiModelProperty("级别 1-一级 2-二级")
|
||||
@Excel(name = "级别 1-一级 2-二级")
|
||||
private Long level;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.mhd.wms.domain.commonSettings.service;
|
||||
|
||||
import com.mhd.wms.domain.commonSettings.repository.facade.ICommonSettingsService;
|
||||
import com.mhd.wms.domain.commonSettings.repository.po.CommonSettingsPO;
|
||||
import com.mhd.wms.domain.commonSettings.repository.todo.CommonSettingsDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用设置
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class CommonSettingsDomainService {
|
||||
|
||||
@Autowired
|
||||
private ICommonSettingsService commonSettingsService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询常用设置列表
|
||||
*/
|
||||
public List<CommonSettingsPO> queryList(CommonSettingsDO commonSettingsDO) {
|
||||
return commonSettingsService.queryList(commonSettingsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增常用设置
|
||||
*/
|
||||
public Boolean insert(CommonSettingsDO commonSettingsDO) {
|
||||
|
||||
return commonSettingsService.insert(commonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改常用设置
|
||||
*/
|
||||
public Boolean update(CommonSettingsDO commonSettingsDO) {
|
||||
return commonSettingsService.update(commonSettingsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除常用设置
|
||||
*/
|
||||
public Boolean delete(Long[] commonSettingsIds) {
|
||||
return commonSettingsService.delete(commonSettingsIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取常用设置详细信息
|
||||
*/
|
||||
public CommonSettingsPO getInfo(Long commonSettingsId)
|
||||
{
|
||||
return commonSettingsService.getInfo(commonSettingsId);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 容器使用记录对象 container_usage_record
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ContainerUsageRecord extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("容器id")
|
||||
@Excel(name = "容器id")
|
||||
private Long containerId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("容器编码")
|
||||
@Excel(name = "容器编码")
|
||||
private String containerCode;
|
||||
|
||||
@ApiModelProperty("容器类型 数据字典")
|
||||
@Excel(name = "容器类型 数据字典")
|
||||
private String containerType;
|
||||
|
||||
@ApiModelProperty("容器类型名称 数据字典")
|
||||
@Excel(name = "容器类型名称 数据字典")
|
||||
private String containerTypeName;
|
||||
|
||||
@ApiModelProperty("容器容积 单位:立方米")
|
||||
@Excel(name = "容器容积 单位:立方米")
|
||||
private BigDecimal containerVolume;
|
||||
|
||||
@ApiModelProperty("记录类型: 1-占用 2-释放")
|
||||
@Excel(name = "记录类型: 1-占用 2-释放")
|
||||
private Integer useType;
|
||||
|
||||
@ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
@Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
private Integer node;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
@ApiModelProperty("物料编码")
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
|
||||
@ApiModelProperty("物料名称")
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
|
||||
@ApiModelProperty("物料条形码")
|
||||
@Excel(name = "物料条形码")
|
||||
private String barCode;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 容器使用记录Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
public interface IContainerUsageRecordService extends IService<ContainerUsageRecord>
|
||||
{
|
||||
/**
|
||||
* 分页查询容器使用记录列表
|
||||
*/
|
||||
public List<ContainerUsageRecordPO> queryList(ContainerUsageRecordDO containerUsageRecordDO);
|
||||
|
||||
/**
|
||||
* 新增容器使用记录
|
||||
*/
|
||||
public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO);
|
||||
|
||||
/**
|
||||
* 修改容器使用记录
|
||||
*/
|
||||
public Boolean update(ContainerUsageRecordDO containerUsageRecordDO);
|
||||
|
||||
/**
|
||||
* 批量删除容器使用记录
|
||||
*/
|
||||
public Boolean delete(String[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询容器使用记录
|
||||
*/
|
||||
public ContainerUsageRecordPO getInfo(String id);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 容器使用记录Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
public interface ContainerUsageRecordMapper extends BaseMapper<ContainerUsageRecord>
|
||||
{
|
||||
/**
|
||||
* 查询容器使用记录列表
|
||||
*/
|
||||
public List<ContainerUsageRecordPO> queryList(ContainerUsageRecordDO containerUsageRecordDO);
|
||||
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.wms.domain.containerUsageRecord.entity.ContainerUsageRecord;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.facade.IContainerUsageRecordService;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.mapper.ContainerUsageRecordMapper;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 容器使用记录Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
@Service
|
||||
public class ContainerUsageRecordImpl extends ServiceImpl<ContainerUsageRecordMapper, ContainerUsageRecord> implements IContainerUsageRecordService {
|
||||
@Autowired
|
||||
private ContainerUsageRecordMapper containerUsageRecordMapper;
|
||||
|
||||
/**
|
||||
* 查询容器使用记录列表
|
||||
*/
|
||||
@Override
|
||||
public List<ContainerUsageRecordPO> queryList(ContainerUsageRecordDO containerUsageRecordDO)
|
||||
{
|
||||
return containerUsageRecordMapper.queryList(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增容器使用记录
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
|
||||
BeanUtils.copyProperties(containerUsageRecordDO,containerUsageRecord);
|
||||
return this.save(containerUsageRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改容器使用记录
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
|
||||
BeanUtils.copyProperties(containerUsageRecordDO,containerUsageRecord);
|
||||
return this.updateById(containerUsageRecord);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除容器使用记录
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(String[] ids ) {
|
||||
List<ContainerUsageRecord> list = new ArrayList<>();
|
||||
for (String id : ids) {
|
||||
ContainerUsageRecord containerUsageRecord = new ContainerUsageRecord();
|
||||
containerUsageRecord.setId(id);
|
||||
containerUsageRecord.setDelFlag(2);
|
||||
list.add(containerUsageRecord);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改容器使用记录
|
||||
*/
|
||||
@Override
|
||||
public ContainerUsageRecordPO getInfo(String id) {
|
||||
ContainerUsageRecord containerUsageRecord = this.getById(id);
|
||||
ContainerUsageRecordPO containerUsageRecordPO = new ContainerUsageRecordPO();
|
||||
BeanUtils.copyProperties(containerUsageRecord,containerUsageRecordPO);
|
||||
return containerUsageRecordPO;
|
||||
}
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 容器使用记录对象 container_usage_record
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "容器使用记录对象", description = "容器使用记录响应对象")
|
||||
public class ContainerUsageRecordPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("容器id")
|
||||
@Excel(name = "容器id")
|
||||
private Long containerId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("容器编码")
|
||||
@Excel(name = "容器编码")
|
||||
private String containerCode;
|
||||
|
||||
@ApiModelProperty("容器类型 数据字典")
|
||||
@Excel(name = "容器类型 数据字典")
|
||||
private String containerType;
|
||||
|
||||
@ApiModelProperty("容器类型名称 数据字典")
|
||||
@Excel(name = "容器类型名称 数据字典")
|
||||
private String containerTypeName;
|
||||
|
||||
@ApiModelProperty("容器容积 单位:立方米")
|
||||
@Excel(name = "容器容积 单位:立方米")
|
||||
private BigDecimal containerVolume;
|
||||
|
||||
@ApiModelProperty("记录类型: 1-占用 2-释放")
|
||||
@Excel(name = "记录类型: 1-占用 2-释放")
|
||||
private Integer useType;
|
||||
|
||||
@ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
@Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
private Integer node;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
@ApiModelProperty("物料编码")
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
|
||||
@ApiModelProperty("物料名称")
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
|
||||
@ApiModelProperty("物料条形码")
|
||||
@Excel(name = "物料条形码")
|
||||
private String barCode;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 容器使用记录对象 container_usage_record
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ContainerUsageRecordDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("容器id")
|
||||
@Excel(name = "容器id")
|
||||
private Long containerId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("容器编码")
|
||||
@Excel(name = "容器编码")
|
||||
private String containerCode;
|
||||
|
||||
@ApiModelProperty("容器类型 数据字典")
|
||||
@Excel(name = "容器类型 数据字典")
|
||||
private String containerType;
|
||||
|
||||
@ApiModelProperty("容器类型名称 数据字典")
|
||||
@Excel(name = "容器类型名称 数据字典")
|
||||
private String containerTypeName;
|
||||
|
||||
@ApiModelProperty("容器容积 单位:立方米")
|
||||
@Excel(name = "容器容积 单位:立方米")
|
||||
private BigDecimal containerVolume;
|
||||
|
||||
@ApiModelProperty("记录类型: 1-占用 2-释放")
|
||||
@Excel(name = "记录类型: 1-占用 2-释放")
|
||||
private Integer useType;
|
||||
|
||||
@ApiModelProperty("使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
@Excel(name = "使用节点: 1-收货 2-上架 3-拣货 4-出库")
|
||||
private Integer node;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
@ApiModelProperty("物料编码")
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
|
||||
@ApiModelProperty("物料名称")
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
|
||||
@ApiModelProperty("物料条形码")
|
||||
@Excel(name = "物料条形码")
|
||||
private String barCode;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.mhd.wms.domain.containerUsageRecord.service;
|
||||
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.facade.IContainerUsageRecordService;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.po.ContainerUsageRecordPO;
|
||||
import com.mhd.wms.domain.containerUsageRecord.repository.todo.ContainerUsageRecordDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 容器使用记录
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-08-22
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ContainerUsageRecordDomainService {
|
||||
|
||||
@Autowired
|
||||
private IContainerUsageRecordService containerUsageRecordService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询容器使用记录列表
|
||||
*/
|
||||
public List<ContainerUsageRecordPO> queryList(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
return containerUsageRecordService.queryList(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增容器使用记录
|
||||
*/
|
||||
public Boolean insert(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
|
||||
return containerUsageRecordService.insert(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改容器使用记录
|
||||
*/
|
||||
public Boolean update(ContainerUsageRecordDO containerUsageRecordDO) {
|
||||
return containerUsageRecordService.update(containerUsageRecordDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除容器使用记录
|
||||
*/
|
||||
public Boolean delete(String[] ids) {
|
||||
return containerUsageRecordService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取容器使用记录详细信息
|
||||
*/
|
||||
public ContainerUsageRecordPO getInfo(String id)
|
||||
{
|
||||
return containerUsageRecordService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.mhd.wms.domain.deliveTask.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 下发任务对象 delive_task
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DeliveTask extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("任务id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long deliverTaskId;
|
||||
|
||||
@ApiModelProperty("任务单号")
|
||||
@Excel(name = "任务单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String trackingNumber;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
@Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
private Integer taskType;
|
||||
|
||||
@ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
@Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
private Integer taskStatus;
|
||||
|
||||
@ApiModelProperty("是否下发 0-否 1-是")
|
||||
@Excel(name = "是否下发 0-否 1-是")
|
||||
private Integer taskDistribution;
|
||||
|
||||
@ApiModelProperty("下发时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date taskDistributionTime;
|
||||
|
||||
@ApiModelProperty("下发人id")
|
||||
@Excel(name = "下发人id")
|
||||
private Long taskDistributionId;
|
||||
|
||||
@ApiModelProperty("下发人名称")
|
||||
@Excel(name = "下发人名称")
|
||||
private String taskDistributionName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("重新指派时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date reassignTime;
|
||||
|
||||
@ApiModelProperty("重新指派人id")
|
||||
@Excel(name = "重新指派人id")
|
||||
private Long reassignById;
|
||||
|
||||
@ApiModelProperty("重新指派人")
|
||||
@Excel(name = "重新指派人")
|
||||
private String reassignByName;
|
||||
|
||||
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.mhd.wms.domain.deliveTask.factorys;
|
||||
|
||||
import com.aliyun.oss.ServiceException;
|
||||
import com.aliyun.oss.common.utils.CaseInsensitiveMap;
|
||||
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskTypeService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ZhouGY
|
||||
* @title WaveOrderFactory
|
||||
* @description: 生成波次单规则类型工厂
|
||||
* @date 2024/6/4 11:12
|
||||
**/
|
||||
@Service
|
||||
public class DeliveTaskServiceFactory {
|
||||
|
||||
@Autowired
|
||||
private Map<String, IDeliveTaskTypeService> deliveTaskTypeServiceMap = new CaseInsensitiveMap<>();
|
||||
|
||||
/**
|
||||
* @description 获取对应的服务
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/4 11:14
|
||||
* @param taskType
|
||||
* @return IWaveOrderTypeService
|
||||
*/
|
||||
public IDeliveTaskTypeService getDeliveTaskTypeService(Integer taskType) {
|
||||
String deliveTaskType = "";
|
||||
//任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点
|
||||
switch (taskType){
|
||||
case 1:
|
||||
deliveTaskType = "stockReceiptOrderImpl";
|
||||
break;
|
||||
case 2:
|
||||
deliveTaskType = "stockShelfOrderImpl";
|
||||
break;
|
||||
case 3:
|
||||
deliveTaskType = "stockOutTaskOrderImpl";
|
||||
break;
|
||||
case 4:
|
||||
deliveTaskType = "stockOutOrderImpl";
|
||||
break;
|
||||
case 5:
|
||||
deliveTaskType = "shiftManageImpl";
|
||||
break;
|
||||
case 6:
|
||||
deliveTaskType = "investigationManageImpl";
|
||||
break;
|
||||
default:
|
||||
throw new ServiceException("任务类型不存在");
|
||||
}
|
||||
return deliveTaskTypeServiceMap.get(deliveTaskType);
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 下发任务Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
public interface IDeliveTaskService extends IService<DeliveTask>
|
||||
{
|
||||
/**
|
||||
* 分页查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryList(DeliveTaskDO deliveTaskDO);
|
||||
/**
|
||||
* 分页查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO);
|
||||
|
||||
|
||||
/**
|
||||
* 批量 新增下发任务
|
||||
*/
|
||||
public Boolean batchInsert(List<DeliveTaskDO> deliveTaskDOList);
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除下发任务
|
||||
*/
|
||||
public Boolean delete(Long[] deliverTaskIds);
|
||||
|
||||
|
||||
/**
|
||||
* 查询下发任务
|
||||
*/
|
||||
public DeliveTaskPO getInfo(Long deliverTaskId);
|
||||
|
||||
/**
|
||||
* 工作台查询
|
||||
*/
|
||||
public DeliveTaskSumPO workbenchQuery();
|
||||
|
||||
public int receive(Long deliverTaskId);
|
||||
|
||||
public int refuse(Long deliverTaskId);
|
||||
|
||||
/**
|
||||
* 查询列表表头数量
|
||||
*/
|
||||
public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO);
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.facade;
|
||||
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
|
||||
/**
|
||||
* @author ZhouGY
|
||||
* @title IWaveOrderType
|
||||
* @description: 任务下发
|
||||
* @date 2024/6/4 10:42
|
||||
**/
|
||||
public interface IDeliveTaskTypeService {
|
||||
|
||||
/**
|
||||
* @description 更新订单任务下发状态
|
||||
* @author ZhouGY
|
||||
* @date 2024/6/4 10:43
|
||||
* @param deliveTaskDO
|
||||
* @return Boolean
|
||||
*/
|
||||
public Boolean handleDeliveTask(DeliveTaskDO deliveTaskDO);
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 下发任务Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
public interface DeliveTaskMapper extends BaseMapper<DeliveTask>
|
||||
{
|
||||
/**
|
||||
* 查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryList(DeliveTaskDO deliveTaskDO);
|
||||
|
||||
public DeliveTaskSumPO workbenchQuery(@Param("operatorsBy") Long userid);
|
||||
|
||||
/**
|
||||
* 查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO);
|
||||
/**
|
||||
* 修改任务状态
|
||||
*/
|
||||
@Update("update delive_task set task_status=#{taskStatus} where deliver_task_id=#{deliverTaskId}")
|
||||
public int receive(@Param("deliverTaskId") Long deliverTaskId, @Param("taskStatus") Integer taskStatus);
|
||||
|
||||
|
||||
/**
|
||||
* 修改作业人员
|
||||
*/
|
||||
@Update("update delive_task set operators_by=#{operatorsBy},operators_name=#{operatorsName} where deliver_task_id=#{deliverTaskId}")
|
||||
public int updateOperatorsBy(@Param("deliverTaskId") Long deliverTaskId, @Param("operatorsBy") Long operatorsBy, @Param("operatorsName") String operatorsName);
|
||||
|
||||
/**
|
||||
* 查询下发任务列表
|
||||
*/
|
||||
public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO);
|
||||
}
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.domain.dto.NoticeMessageLoggingDto;
|
||||
import com.mhd.common.core.enums.MessageTypeEnum;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
|
||||
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
|
||||
import com.mhd.wms.domain.deliveTask.repository.mapper.DeliveTaskMapper;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 下发任务Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
@Service
|
||||
public class DeliveTaskImpl extends ServiceImpl<DeliveTaskMapper, DeliveTask> implements IDeliveTaskService{
|
||||
@Autowired
|
||||
private DeliveTaskMapper deliveTaskMapper;
|
||||
@Autowired
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
/**
|
||||
* 查询下发任务列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeliveTaskPO> queryList(DeliveTaskDO deliveTaskDO)
|
||||
{
|
||||
return deliveTaskMapper.queryList(deliveTaskDO);
|
||||
}
|
||||
/**
|
||||
* 查询下发任务列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO)
|
||||
{
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if(null!=deliveTaskDO.getTabType()&&deliveTaskDO.getTabType()==1){
|
||||
deliveTaskDO.setOperatorsBy(loginUser.getUserid());
|
||||
}else{
|
||||
|
||||
}
|
||||
return deliveTaskMapper.queryListApp(deliveTaskDO);
|
||||
}
|
||||
/**
|
||||
* 新增下发任务
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<DeliveTaskDO> deliveTaskDOList) {
|
||||
List<DeliveTask> deliveTaskList = new ArrayList<>();
|
||||
List<NoticeMessageLoggingDto> noticeMessageLoggingDtoList = new ArrayList<>();
|
||||
for (DeliveTaskDO deliveTaskDO : deliveTaskDOList){
|
||||
DeliveTask deliveTask = new DeliveTask();
|
||||
BeanUtils.copyProperties(deliveTaskDO,deliveTask);
|
||||
deliveTaskList.add(deliveTask);
|
||||
NoticeMessageLoggingDto noticeMessageLoggingDto = new NoticeMessageLoggingDto();
|
||||
noticeMessageLoggingDto.setUserId(deliveTaskDO.getOperatorsBy());
|
||||
noticeMessageLoggingDto.setUserName(deliveTaskDO.getOperatorsName());
|
||||
noticeMessageLoggingDto.setNoticeMessageType(MessageTypeEnum.system_notifications.getCode());
|
||||
noticeMessageLoggingDto.setNoticeMessageName(MessageTypeEnum.system_notifications.getInfo());
|
||||
noticeMessageLoggingDto.setNoticeMessageTitle("任务下发通知");
|
||||
noticeMessageLoggingDto.setMessageReadStatus(2);
|
||||
String text="";
|
||||
if(deliveTaskDO.getTaskType()==1){
|
||||
text="有一个指派给您的收货任务,请尽快处理";
|
||||
}else if(deliveTaskDO.getTaskType()==2){
|
||||
text="有一个指派给您的上架任务,请尽快处理";
|
||||
}else if(deliveTaskDO.getTaskType()==3){
|
||||
text="有一个指派给您的拣货任务,请尽快处理";
|
||||
}else if(deliveTaskDO.getTaskType()==4){
|
||||
text="有一个指派给您的复盘任务,请尽快处理";
|
||||
}else if(deliveTaskDO.getTaskType()==5){
|
||||
text="有一个指派给您的移位任务,请尽快处理";
|
||||
}else if(deliveTaskDO.getTaskType()==6){
|
||||
text="有一个指派给您的盘点任务,请尽快处理";
|
||||
}
|
||||
noticeMessageLoggingDto.setMessagePushTime(new Date());
|
||||
noticeMessageLoggingDto.setMessageSource(2);
|
||||
noticeMessageLoggingDto.setTopOrganizationId(deliveTaskDO.getTopOrganizationId());
|
||||
noticeMessageLoggingDto.setWaybillNumber(deliveTaskDO.getTrackingNumber());
|
||||
noticeMessageLoggingDto.setDataSourceSystem(3);
|
||||
noticeMessageLoggingDto.setDelFlag(1);
|
||||
noticeMessageLoggingDto.setJumpPage(0);
|
||||
noticeMessageLoggingDto.setNoticeMessageContent(text);
|
||||
noticeMessageLoggingDto.setCreateBy(deliveTaskDO.getCreateBy());
|
||||
noticeMessageLoggingDto.setCreateByName(deliveTaskDO.getCreateByName());
|
||||
noticeMessageLoggingDto.setCreateTime(new Date());
|
||||
noticeMessageLoggingDto.setMessagePushTime(new Date());
|
||||
noticeMessageLoggingDtoList.add(noticeMessageLoggingDto);
|
||||
}
|
||||
saveBatch(deliveTaskList);
|
||||
NoticeMessageLoggingDto noticeMessageLogging = new NoticeMessageLoggingDto();
|
||||
noticeMessageLogging.setNoticeList(noticeMessageLoggingDtoList);
|
||||
AjaxResult ajaxResult= systemServiceFeign.addMessageLoggingList(noticeMessageLogging);
|
||||
if(!"200".equals(String.valueOf(ajaxResult.get("code")))){
|
||||
throw new ServiceException("保存消息信息失败");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除下发任务
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] deliverTaskIds ) {
|
||||
List<DeliveTask> list = new ArrayList<>();
|
||||
for (Long id : deliverTaskIds) {
|
||||
DeliveTask deliveTask = new DeliveTask();
|
||||
deliveTask.setDeliverTaskId(id);
|
||||
deliveTask.setDelFlag(2);
|
||||
list.add(deliveTask);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改下发任务
|
||||
*/
|
||||
@Override
|
||||
public DeliveTaskPO getInfo(Long deliverTaskId) {
|
||||
DeliveTask deliveTask = this.getById(deliverTaskId);
|
||||
DeliveTaskPO deliveTaskPO = new DeliveTaskPO();
|
||||
BeanUtils.copyProperties(deliveTask,deliveTaskPO);
|
||||
return deliveTaskPO;
|
||||
}
|
||||
/**
|
||||
* 工作台查询
|
||||
*/
|
||||
@Override
|
||||
public DeliveTaskSumPO workbenchQuery() {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
|
||||
return deliveTaskMapper.workbenchQuery(loginUser.getUserid());
|
||||
}
|
||||
/**
|
||||
* 接收操作
|
||||
*/
|
||||
@Override
|
||||
public int receive(Long deliverTaskId) {
|
||||
return deliveTaskMapper.receive(deliverTaskId,1);
|
||||
}
|
||||
/**
|
||||
* 拒绝操作
|
||||
*/
|
||||
@Override
|
||||
public int refuse(Long deliverTaskId) {
|
||||
int update=deliveTaskMapper.receive(deliverTaskId,2);
|
||||
if(update==1){
|
||||
deliveTaskMapper.updateOperatorsBy(deliverTaskId, Long.valueOf("0"),"");
|
||||
}
|
||||
return update;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
|
||||
return deliveTaskMapper.querySum(deliveTaskDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 下发任务对象 delive_task
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "下发任务对象", description = "下发任务响应对象")
|
||||
public class DeliveTaskPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("任务id")
|
||||
private Long deliverTaskId;
|
||||
|
||||
@ApiModelProperty("任务单号")
|
||||
@Excel(name = "任务单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String trackingNumber;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
@Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
private Integer taskType;
|
||||
|
||||
@ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
@Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
private Integer taskStatus;
|
||||
|
||||
@ApiModelProperty("是否下发 0-否 1-是")
|
||||
@Excel(name = "是否下发 0-否 1-是")
|
||||
private Integer taskDistribution;
|
||||
|
||||
@ApiModelProperty("下发时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date taskDistributionTime;
|
||||
|
||||
@ApiModelProperty("下发人id")
|
||||
@Excel(name = "下发人id")
|
||||
private Long taskDistributionId;
|
||||
|
||||
@ApiModelProperty("下发人名称")
|
||||
@Excel(name = "下发人名称")
|
||||
private String taskDistributionName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("重新指派时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date reassignTime;
|
||||
|
||||
@ApiModelProperty("重新指派人id")
|
||||
@Excel(name = "重新指派人id")
|
||||
private Long reassignById;
|
||||
|
||||
@ApiModelProperty("重新指派人")
|
||||
@Excel(name = "重新指派人")
|
||||
private String reassignByName;
|
||||
|
||||
@ApiModelProperty("是否下发 0-否 1-是")
|
||||
@Excel(name = "是否下发 0-否 1-是")
|
||||
private Integer designateSum;
|
||||
|
||||
@ApiModelProperty("是否下发 0-否 1-是")
|
||||
@Excel(name = "是否下发 0-否 1-是")
|
||||
private Integer taskSum;
|
||||
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.po;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 下发任务对象 delive_task
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "下发任务对象", description = "下发任务响应对象")
|
||||
public class DeliveTaskSumPO {
|
||||
|
||||
@ApiModelProperty("待收货数量")
|
||||
private Integer receivedQuantity;
|
||||
|
||||
@ApiModelProperty("待上架数量")
|
||||
private Integer listingQuantity;
|
||||
|
||||
@ApiModelProperty("待拣货数量")
|
||||
private Integer pickQuantity;
|
||||
|
||||
@ApiModelProperty("待复核数量")
|
||||
private Integer recheckQuantity;
|
||||
|
||||
@ApiModelProperty("待移位数量")
|
||||
private Integer displacementQuantity;
|
||||
|
||||
@ApiModelProperty("待盘点数量")
|
||||
private Integer stockQuantity;
|
||||
|
||||
|
||||
}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
package com.mhd.wms.domain.deliveTask.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 下发任务对象 delive_task
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DeliveTaskDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("任务id")
|
||||
private Long deliverTaskId;
|
||||
|
||||
@ApiModelProperty("任务单号")
|
||||
@Excel(name = "任务单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String trackingNumber;
|
||||
|
||||
@ApiModelProperty("组织id")
|
||||
@Excel(name = "组织id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
@Excel(name = "任务类型 0-无 1-收货 2-上架 3-拣货 4-复核 5-移位 6-盘点")
|
||||
private Integer taskType;
|
||||
|
||||
@ApiModelProperty("任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
@Excel(name = "任务状态 0-未接收 1-已接收 2-已拒绝 3-已完成 4-已关闭")
|
||||
private Integer taskStatus;
|
||||
|
||||
@ApiModelProperty("是否下发 0-否 1-是")
|
||||
@Excel(name = "是否下发 0-否 1-是")
|
||||
private Integer taskDistribution;
|
||||
|
||||
@ApiModelProperty("下发时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date taskDistributionTime;
|
||||
|
||||
@ApiModelProperty("下发人id")
|
||||
@Excel(name = "下发人id")
|
||||
private Long taskDistributionId;
|
||||
|
||||
@ApiModelProperty("下发人名称")
|
||||
@Excel(name = "下发人名称")
|
||||
private String taskDistributionName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("重新指派时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
@Excel(name = "重新指派时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date reassignTime;
|
||||
|
||||
@ApiModelProperty("重新指派人id")
|
||||
@Excel(name = "重新指派人id")
|
||||
private Long reassignById;
|
||||
|
||||
@ApiModelProperty("重新指派人")
|
||||
@Excel(name = "重新指派人")
|
||||
private String reassignByName;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("查询类型 1-指派给我的 2-任务")
|
||||
@Excel(name = "查询类型 1-指派给我的 2-任务")
|
||||
private Long tabType;
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
package com.mhd.wms.domain.deliveTask.service;
|
||||
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.wms.domain.deliveTask.entity.DeliveTask;
|
||||
import com.mhd.wms.domain.deliveTask.factorys.DeliveTaskServiceFactory;
|
||||
import com.mhd.wms.domain.deliveTask.repository.facade.IDeliveTaskService;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.po.DeliveTaskSumPO;
|
||||
import com.mhd.wms.domain.deliveTask.repository.todo.DeliveTaskDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 下发任务
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-26
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DeliveTaskDomainService {
|
||||
|
||||
@Autowired
|
||||
private IDeliveTaskService deliveTaskService;
|
||||
@Autowired
|
||||
private DeliveTaskServiceFactory deliveTaskServiceFactory;
|
||||
|
||||
/**
|
||||
* 分页查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryList(DeliveTaskDO deliveTaskDO) {
|
||||
return deliveTaskService.queryList(deliveTaskDO);
|
||||
}
|
||||
/**
|
||||
* 分页查询下发任务列表
|
||||
*/
|
||||
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO) {
|
||||
return deliveTaskService.queryListApp(deliveTaskDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量 新增下发任务
|
||||
*/
|
||||
public Boolean batchInsert(List<DeliveTaskDO> deliveTaskDOList) {
|
||||
return deliveTaskService.batchInsert(deliveTaskDOList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除下发任务
|
||||
*/
|
||||
public Boolean delete(Long[] deliverTaskIds) {
|
||||
return deliveTaskService.delete(deliverTaskIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取下发任务详细信息
|
||||
*/
|
||||
public DeliveTaskPO getInfo(Long deliverTaskId)
|
||||
{
|
||||
return deliveTaskService.getInfo(deliverTaskId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 工作台查询
|
||||
*/
|
||||
public DeliveTaskSumPO workbenchQuery()
|
||||
{
|
||||
return deliveTaskService.workbenchQuery();
|
||||
}
|
||||
/**
|
||||
* 接收操作
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int receive(Long deliverTaskId) {
|
||||
DeliveTask deliveTask = deliveTaskService.getById(deliverTaskId);
|
||||
if (deliveTask == null){
|
||||
throw new ServiceException("任务不存在");
|
||||
}
|
||||
if (deliveTask.getTaskStatus() > 0){
|
||||
throw new ServiceException("任务已处理,请勿重复处理");
|
||||
}
|
||||
int count = deliveTaskService.receive(deliverTaskId);
|
||||
if (count == 0) {
|
||||
throw new ServiceException("接受任务失败");
|
||||
}
|
||||
DeliveTaskDO deliveTaskDO = new DeliveTaskDO();
|
||||
deliveTaskDO.setTrackingNumber(deliveTask.getTrackingNumber());
|
||||
deliveTaskDO.setOperatorsBy(deliveTask.getOperatorsBy());
|
||||
deliveTaskDO.setOperatorsName(deliveTask.getOperatorsName());
|
||||
deliveTaskServiceFactory.getDeliveTaskTypeService(deliveTask.getTaskType()).handleDeliveTask(deliveTaskDO);
|
||||
return count;
|
||||
}
|
||||
/**
|
||||
* 拒绝操作
|
||||
*/
|
||||
public int refuse(Long deliverTaskId) {
|
||||
DeliveTask deliveTask = deliveTaskService.getById(deliverTaskId);
|
||||
if (deliveTask == null){
|
||||
throw new ServiceException("任务不存在");
|
||||
}
|
||||
if (deliveTask.getTaskStatus() > 0){
|
||||
throw new ServiceException("任务已处理,请勿重复处理");
|
||||
}
|
||||
return deliveTaskService.refuse(deliverTaskId);
|
||||
}
|
||||
/**
|
||||
* 查询列表表头数量
|
||||
*/
|
||||
public DeliveTaskPO querySum(DeliveTaskDO deliveTaskDO) {
|
||||
return deliveTaskService.querySum(deliveTaskDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.mhd.wms.domain.differentManage.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.entity.InvestigetionManageDetail;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 差异单对象 different_manage
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DifferentManage extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("差异管理id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long differentManageId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("差异单号")
|
||||
@Excel(name = "差异单号")
|
||||
private String differentNumber;
|
||||
|
||||
@ApiModelProperty("盘点单号")
|
||||
@Excel(name = "盘点单号")
|
||||
private String investigationNumber;
|
||||
|
||||
@ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
@Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
private Integer investigationStatus;
|
||||
|
||||
@ApiModelProperty("盘点范围")
|
||||
@Excel(name = "盘点范围")
|
||||
private String investigationRange;
|
||||
|
||||
@ApiModelProperty("盘点方式:1.明盘 2.盲盘")
|
||||
@Excel(name = "盘点方式:1.明盘 2.盲盘")
|
||||
private Integer investigationType;
|
||||
|
||||
@ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
|
||||
@Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
|
||||
private Integer investigationMethod;
|
||||
|
||||
@ApiModelProperty("盘点轮次:1.初盘 2.复盘")
|
||||
@Excel(name = "盘点轮次:1.初盘 2.复盘")
|
||||
private Integer investigationFrequency;
|
||||
|
||||
@ApiModelProperty("监盘人ID")
|
||||
@Excel(name = "监盘人ID")
|
||||
private Long investigationManBy;
|
||||
|
||||
@ApiModelProperty("监盘人姓名")
|
||||
@Excel(name = "监盘人姓名")
|
||||
private String investigationManName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("是否作废: 1-是 2-否")
|
||||
@Excel(name = "是否作废: 1-是 2-否")
|
||||
private Integer nullify;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("是否过账: 1-是 2-否")
|
||||
@Excel(name = "是否过账: 1-是 2-否")
|
||||
private Integer postedFlag;
|
||||
|
||||
@ApiModelProperty("是否重盘: 1-是 2-否")
|
||||
@Excel(name = "是否重盘: 1-是 2-否")
|
||||
private Integer reCountedFlag;
|
||||
|
||||
@ApiModelProperty("盘点详情")
|
||||
@TableField(exist = false)
|
||||
private List<InvestigetionManageDetail> investigetionManageDetailList;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.mhd.wms.domain.differentManage.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.wms.domain.differentManage.entity.DifferentManage;
|
||||
import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
|
||||
import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 差异单Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
public interface IDifferentManageService extends IService<DifferentManage>
|
||||
{
|
||||
/**
|
||||
* 分页查询差异单列表
|
||||
*/
|
||||
public List<DifferentManagePO> queryList(DifferentManageDO differentManageDO);
|
||||
|
||||
/**
|
||||
* 新增差异单
|
||||
*/
|
||||
public Boolean insert(DifferentManageDO differentManageDO);
|
||||
|
||||
/**
|
||||
* 修改差异单
|
||||
*/
|
||||
public Boolean update(DifferentManageDO differentManageDO);
|
||||
|
||||
/**
|
||||
* 批量删除差异单
|
||||
*/
|
||||
public Boolean delete(Long[] differentManageIds);
|
||||
|
||||
|
||||
/**
|
||||
* 查询差异单
|
||||
*/
|
||||
public DifferentManagePO getInfo(Long differentManageId);
|
||||
|
||||
/**
|
||||
* 重盘生成新的差异单
|
||||
*/
|
||||
public Boolean resetDifferent(DifferentManageDO differentManageDO);
|
||||
|
||||
/**
|
||||
* 差异过账
|
||||
*/
|
||||
public Boolean differentRollback(DifferentManageDO differentManageDO);
|
||||
|
||||
public DifferentManagePO getDifferentManageDO(Long differentManageId);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.wms.domain.differentManage.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.wms.domain.differentManage.entity.DifferentManage;
|
||||
import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
|
||||
import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 差异单Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
public interface DifferentManageMapper extends BaseMapper<DifferentManage>
|
||||
{
|
||||
/**
|
||||
* 查询差异单列表
|
||||
*/
|
||||
public List<DifferentManagePO> queryList(DifferentManageDO differentManageDO);
|
||||
|
||||
}
|
||||
+210
@@ -0,0 +1,210 @@
|
||||
package com.mhd.wms.domain.differentManage.repository.persistence;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import com.mhd.wms.domain.differentManage.entity.DifferentManage;
|
||||
import com.mhd.wms.domain.differentManage.repository.facade.IDifferentManageService;
|
||||
import com.mhd.wms.domain.differentManage.repository.mapper.DifferentManageMapper;
|
||||
import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
|
||||
import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
|
||||
import com.mhd.wms.domain.investigationManage.entity.InvestigationManage;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.entity.InvestigetionManageDetail;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.mapper.InvestigetionManageDetailMapper;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
|
||||
import com.mhd.wms.domain.materialInventory.entity.MaterialInventory;
|
||||
import com.mhd.wms.domain.materialInventory.repository.mapper.MaterialInventoryMapper;
|
||||
import com.mhd.wms.domain.materialInventory.repository.todo.MaterialInventoryDO;
|
||||
import com.mhd.wms.enums.StatusInvestigationEnum;
|
||||
import com.mhd.wms.util.UtilloginUserAssemble;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 差异单Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
@Service
|
||||
public class DifferentManageImpl extends ServiceImpl<DifferentManageMapper, DifferentManage> implements IDifferentManageService {
|
||||
@Autowired
|
||||
private DifferentManageMapper differentManageMapper;
|
||||
|
||||
@Autowired
|
||||
private com.mhd.wms.domain.investigationManage.repository.mapper.InvestigationManageMapper investigationManageMapper;
|
||||
|
||||
@Autowired
|
||||
private InvestigetionManageDetailMapper investigetionManageDetailMapper;
|
||||
|
||||
@Autowired
|
||||
private com.mhd.wms.domain.investigationManage.repository.mapper.InvestigationManageMapper InvestigationManageMapper;
|
||||
|
||||
@Autowired
|
||||
private MaterialInventoryMapper materialInventoryMapper;
|
||||
|
||||
/**
|
||||
* 查询差异单列表
|
||||
*/
|
||||
@Override
|
||||
public List<DifferentManagePO> queryList(DifferentManageDO differentManageDO) {
|
||||
return differentManageMapper.queryList(differentManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增差异单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(DifferentManageDO differentManageDO) {
|
||||
DifferentManage differentManage = new DifferentManage();
|
||||
BeanUtils.copyProperties(differentManageDO, differentManage);
|
||||
return this.save(differentManage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改差异单
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(DifferentManageDO differentManageDO) {
|
||||
DifferentManage differentManage = new DifferentManage();
|
||||
BeanUtils.copyProperties(differentManageDO, differentManage);
|
||||
return this.updateById(differentManage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除差异单
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] differentManageIds) {
|
||||
List<DifferentManage> list = new ArrayList<>();
|
||||
for (Long id : differentManageIds) {
|
||||
DifferentManage differentManage = new DifferentManage();
|
||||
differentManage.setDifferentManageId(id);
|
||||
differentManage.setDelFlag(2);
|
||||
list.add(differentManage);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改差异单
|
||||
*/
|
||||
@Override
|
||||
public DifferentManagePO getInfo(Long differentManageId) {
|
||||
DifferentManage differentManage = this.getById(differentManageId);
|
||||
DifferentManagePO differentManagePO = new DifferentManagePO();
|
||||
BeanUtils.copyProperties(differentManage, differentManagePO);
|
||||
return differentManagePO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean resetDifferent(DifferentManageDO differentManageDO) {
|
||||
// 生成新的盘点单
|
||||
// 查询差异单
|
||||
DifferentManage differentManage = differentManageMapper.selectById(differentManageDO.getDifferentManageId());
|
||||
if(null == differentManage){
|
||||
throw new ServiceException("抱歉,没有找到此差异单信息!");
|
||||
}
|
||||
//盘点单号
|
||||
String investigationNumber = differentManage.getInvestigationNumber();
|
||||
//查询原盘点单信息
|
||||
InvestigationManage investigationManage = investigationManageMapper.selectOne(new QueryWrapper<InvestigationManage>().lambda().eq(InvestigationManage::getInvestigationNumber, investigationNumber));
|
||||
if(null == investigationManage){
|
||||
throw new ServiceException("抱歉,没有找到此差异单关联的盘点单信息!");
|
||||
}
|
||||
//新的盘点单号
|
||||
investigationManage.setInvestigationNumber(panDian());
|
||||
investigationManage.setOldInvestigationNumber(differentManage.getInvestigationNumber());
|
||||
investigationManage.setDifferentNumber(null);
|
||||
investigationManage.setInvestigationFrequency(2);
|
||||
// 基本信息
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
UserPo userPo = loginUser.getUserPo();
|
||||
investigationManage.setOrganizationId(userPo.getOrganizationId());
|
||||
investigationManage.setTopOrganizationId(userPo.getTopOrganizationId());
|
||||
investigationManage.setOrganizationName(userPo.getOrganizationName());
|
||||
investigationManage.setCreateBy(loginUser.getUserid());
|
||||
investigationManage.setCreateByName(loginUser.getUsername());
|
||||
investigationManage.setCreateTime(new Date());
|
||||
investigationManage.setUpdateBy(loginUser.getUserid());
|
||||
investigationManage.setUpdateByName(loginUser.getUsername());
|
||||
investigationManage.setUpdateTime(new Date());
|
||||
|
||||
//设置新盘点单状态--待盘点(禅道7820)
|
||||
investigationManage.setInvestigationStatus(StatusInvestigationEnum.pending.getCode());
|
||||
//根据差异单生成新盘点单明细
|
||||
List<InvestigetionManageDetail> investigetionManageDetailList = investigetionManageDetailMapper.selectList(new QueryWrapper<InvestigetionManageDetail>().lambda().eq(InvestigetionManageDetail::getInvestigationNumber, investigationNumber));
|
||||
for(InvestigetionManageDetail investigetionManageDetail : investigetionManageDetailList){
|
||||
investigetionManageDetail.setDifferentNumber(null);
|
||||
investigetionManageDetail.setInvestigationNumber(investigationManage.getInvestigationNumber());
|
||||
investigetionManageDetail.setInvestigationStatus(StatusInvestigationEnum.pending.getCode());
|
||||
investigetionManageDetail.setInvestigationFrequency(2);
|
||||
//获取最新的库存数量
|
||||
MaterialInventory materialInventory = materialInventoryMapper.selectOne(new QueryWrapper<MaterialInventory>().lambda().eq(MaterialInventory::getMaterialInventoryId, investigetionManageDetail.getMaterialInventoryId()));
|
||||
investigetionManageDetail.setInventoryQuantity(materialInventory.getInventoryQuantity());
|
||||
//盘点数量设置为0
|
||||
investigetionManageDetail.setInvestigationQuantity(BigDecimal.ZERO);
|
||||
//差异数量设置为0
|
||||
investigetionManageDetail.setDifferentQuantity(BigDecimal.ZERO);
|
||||
UtilloginUserAssemble assembler = new UtilloginUserAssemble();
|
||||
assembler.fillCommonProperties(investigetionManageDetail, loginUser);
|
||||
investigetionManageDetail.setInvestigationManageDetailId(null);
|
||||
//保存明细
|
||||
investigetionManageDetailMapper.insert(investigetionManageDetail);
|
||||
}
|
||||
|
||||
return InvestigationManageMapper.insert(investigationManage) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean differentRollback(DifferentManageDO differentManageDO1) {
|
||||
DifferentManagePO differentManagePO = getDifferentManageDO(differentManageDO1.getDifferentManageId());
|
||||
DifferentManageDO differentManageDO = JSONUtil.toBean(JSONUtil.toJsonStr(differentManagePO), DifferentManageDO.class);
|
||||
// 库存差异更新
|
||||
List<InvestigetionManageDetailDO> investigetionManageDetailList = differentManageDO.getInvestigetionManageDetailList();
|
||||
investigetionManageDetailList.forEach(e->{
|
||||
MaterialInventory materialInventory = new MaterialInventory();
|
||||
if (e.getInvestigationStatus() != 3){ // 库存更新
|
||||
materialInventory = materialInventoryMapper.selectById(e.getMaterialInventoryId());
|
||||
materialInventory.setInventoryQuantity(e.getInvestigationQuantity());
|
||||
|
||||
}
|
||||
materialInventoryMapper.updateMaterial(JSONUtil.toBean(JSONUtil.toJsonStr(materialInventory), MaterialInventoryDO.class));
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DifferentManagePO getDifferentManageDO(Long differentManageId) {
|
||||
DifferentManage differentManage = differentManageMapper.selectById(differentManageId);
|
||||
String investigationNumber = differentManage.getInvestigationNumber();
|
||||
List<InvestigetionManageDetail> investigetionManageDetails = investigetionManageDetailMapper.selectList(new QueryWrapper<InvestigetionManageDetail>().lambda().eq(InvestigetionManageDetail::getInvestigationNumber, investigationNumber));
|
||||
List<InvestigetionManageDetail> investigetionManageDetailList = new ArrayList<>();
|
||||
for (InvestigetionManageDetail e : investigetionManageDetails) {
|
||||
if (e.getInvestigationResult() != 3) {
|
||||
investigetionManageDetailList.add(e);
|
||||
}
|
||||
}
|
||||
differentManage.setInvestigetionManageDetailList(investigetionManageDetailList);
|
||||
return JSONUtil.toBean(JSONUtil.toJsonStr(differentManage),DifferentManagePO.class);
|
||||
}
|
||||
|
||||
public String panDian() {
|
||||
String panDian = "PD";
|
||||
LocalDateTime loc = LocalDateTime.now();
|
||||
panDian += loc.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
|
||||
return panDian;
|
||||
}
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
package com.mhd.wms.domain.differentManage.repository.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.po.InvestigetionManageDetailPO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 差异单对象 different_manage
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "差异单对象", description = "差异单响应对象")
|
||||
public class DifferentManagePO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("差异管理id")
|
||||
private Long differentManageId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("差异单号")
|
||||
@Excel(name = "差异单号")
|
||||
private String differentNumber;
|
||||
|
||||
@ApiModelProperty("盘点单号")
|
||||
@Excel(name = "盘点单号")
|
||||
private String investigationNumber;
|
||||
|
||||
@ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
@Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
private Integer investigationStatus;
|
||||
|
||||
@ApiModelProperty("盘点范围")
|
||||
@Excel(name = "盘点范围")
|
||||
private String investigationRange;
|
||||
|
||||
@ApiModelProperty("盘点方式:1.明盘 2.盲盘")
|
||||
@Excel(name = "盘点方式:1.明盘 2.盲盘")
|
||||
private Integer investigationType;
|
||||
|
||||
@ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
|
||||
@Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
|
||||
private Integer investigationMethod;
|
||||
|
||||
@ApiModelProperty("盘点轮次:1.初盘 2.复盘")
|
||||
@Excel(name = "盘点轮次:1.初盘 2.复盘")
|
||||
private Integer investigationFrequency;
|
||||
|
||||
@ApiModelProperty("监盘人ID")
|
||||
@Excel(name = "监盘人ID")
|
||||
private Long investigationManBy;
|
||||
|
||||
@ApiModelProperty("监盘人姓名")
|
||||
@Excel(name = "监盘人姓名")
|
||||
private String investigationManName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("是否作废: 1-是 2-否")
|
||||
@Excel(name = "是否作废: 1-是 2-否")
|
||||
private Integer nullify;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("是否过账: 1-是 2-否")
|
||||
@Excel(name = "是否过账: 1-是 2-否")
|
||||
private Integer postedFlag;
|
||||
|
||||
@ApiModelProperty("是否重盘: 1-是 2-否")
|
||||
@Excel(name = "是否重盘: 1-是 2-否")
|
||||
private Integer reCountedFlag;
|
||||
|
||||
@ApiModelProperty("盘点详情")
|
||||
@TableField(exist = false)
|
||||
private List<InvestigetionManageDetailPO> investigetionManageDetailList;
|
||||
|
||||
}
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
package com.mhd.wms.domain.differentManage.repository.todo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import com.mhd.wms.domain.investigetionManageDetail.repository.todo.InvestigetionManageDetailDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 差异单对象 different_manage
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DifferentManageDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("差异管理id")
|
||||
private Long differentManageId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("差异单号")
|
||||
@Excel(name = "差异单号")
|
||||
private String differentNumber;
|
||||
|
||||
@ApiModelProperty("盘点单号")
|
||||
@Excel(name = "盘点单号")
|
||||
private String investigationNumber;
|
||||
|
||||
@ApiModelProperty("盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
@Excel(name = "盘点状态: 1.已创建 2.待盘点 3.盘点中 4.盘点完成")
|
||||
private Integer investigationStatus;
|
||||
|
||||
@ApiModelProperty("盘点范围")
|
||||
@Excel(name = "盘点范围")
|
||||
private String investigationRange;
|
||||
|
||||
@ApiModelProperty("盘点方式:1.明盘 2.盲盘")
|
||||
@Excel(name = "盘点方式:1.明盘 2.盲盘")
|
||||
private Integer investigationType;
|
||||
|
||||
@ApiModelProperty("盘点方法:1.静态盘点 2.动态盘点")
|
||||
@Excel(name = "盘点方法:1.静态盘点 2.动态盘点")
|
||||
private Integer investigationMethod;
|
||||
|
||||
@ApiModelProperty("盘点轮次:1.初盘 2.复盘")
|
||||
@Excel(name = "盘点轮次:1.初盘 2.复盘")
|
||||
private Integer investigationFrequency;
|
||||
|
||||
@ApiModelProperty("监盘人ID")
|
||||
@Excel(name = "监盘人ID")
|
||||
private Long investigationManBy;
|
||||
|
||||
@ApiModelProperty("监盘人姓名")
|
||||
@Excel(name = "监盘人姓名")
|
||||
private String investigationManName;
|
||||
|
||||
@ApiModelProperty("作业人用户ID")
|
||||
@Excel(name = "作业人用户ID")
|
||||
private Long operatorsBy;
|
||||
|
||||
@ApiModelProperty("作业人姓名")
|
||||
@Excel(name = "作业人姓名")
|
||||
private String operatorsName;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("是否作废: 1-是 2-否")
|
||||
@Excel(name = "是否作废: 1-是 2-否")
|
||||
private Integer nullify;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("是否过账: 1-是 2-否")
|
||||
@Excel(name = "是否过账: 1-是 2-否")
|
||||
private Integer postedFlag;
|
||||
|
||||
@ApiModelProperty("是否重盘: 1-是 2-否")
|
||||
@Excel(name = "是否重盘: 1-是 2-否")
|
||||
private Integer reCountedFlag;
|
||||
|
||||
@ApiModelProperty("盘点详情")
|
||||
@TableField(exist = false)
|
||||
private List<InvestigetionManageDetailDO> investigetionManageDetailList;
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.mhd.wms.domain.differentManage.service;
|
||||
|
||||
import com.mhd.wms.domain.differentManage.repository.facade.IDifferentManageService;
|
||||
import com.mhd.wms.domain.differentManage.repository.po.DifferentManagePO;
|
||||
import com.mhd.wms.domain.differentManage.repository.todo.DifferentManageDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 差异单
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-07-20
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DifferentManageDomainService {
|
||||
|
||||
@Autowired
|
||||
private IDifferentManageService differentManageService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询差异单列表
|
||||
*/
|
||||
public List<DifferentManagePO> queryList(DifferentManageDO differentManageDO) {
|
||||
return differentManageService.queryList(differentManageDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增差异单
|
||||
*/
|
||||
public Boolean insert(DifferentManageDO differentManageDO) {
|
||||
|
||||
return differentManageService.insert(differentManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改差异单
|
||||
*/
|
||||
public Boolean update(DifferentManageDO differentManageDO) {
|
||||
return differentManageService.update(differentManageDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除差异单
|
||||
*/
|
||||
public Boolean delete(Long[] differentManageIds) {
|
||||
return differentManageService.delete(differentManageIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取差异单详细信息
|
||||
*/
|
||||
public DifferentManagePO getInfo(Long differentManageId) {
|
||||
return differentManageService.getInfo(differentManageId);
|
||||
}
|
||||
|
||||
public Boolean resetDifferent(DifferentManageDO differentManageDO){
|
||||
return differentManageService.resetDifferent(differentManageDO);
|
||||
}
|
||||
public Boolean differentRollback(DifferentManageDO differentManageDO){
|
||||
return differentManageService.differentRollback(differentManageDO);
|
||||
}
|
||||
|
||||
public DifferentManagePO getDifferentManageDO(Long differentManageId){
|
||||
return differentManageService.getDifferentManageDO(differentManageId);
|
||||
}
|
||||
|
||||
}
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 交接作业单对象 handover_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class HandoverTaskOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("交接作业单id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long handoverTaskOrderId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("作业流水号")
|
||||
@Excel(name = "作业流水号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty("作业单号")
|
||||
@Excel(name = "作业单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("交接状态: 1-未交接 2-已交接")
|
||||
@Excel(name = "交接状态: 1-未交接 2-已交接")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("月台id")
|
||||
@Excel(name = "月台id")
|
||||
private Long platformId;
|
||||
|
||||
@ApiModelProperty("月台编码")
|
||||
@Excel(name = "月台编码")
|
||||
private String platformCode;
|
||||
|
||||
@ApiModelProperty("月台名称 ")
|
||||
@Excel(name = "月台名称 ")
|
||||
private String platformName;
|
||||
|
||||
@ApiModelProperty("月台使用时间管理id")
|
||||
@Excel(name = "月台使用时间管理id")
|
||||
private Long platformUseTimeId;
|
||||
|
||||
@ApiModelProperty("月台使用开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseStartTime;
|
||||
|
||||
@ApiModelProperty("月台使用结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseEndTime;
|
||||
|
||||
@ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
@Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
private Integer platformUseStatus;
|
||||
|
||||
@ApiModelProperty("出库单类型编码")
|
||||
@Excel(name = "出库单类型编码")
|
||||
private String orderTypeCode;
|
||||
|
||||
@ApiModelProperty("出库单类型名称")
|
||||
@Excel(name = "出库单类型名称")
|
||||
private String orderTypeName;
|
||||
|
||||
@ApiModelProperty("预计出货时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date expectTime;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("货主id")
|
||||
@Excel(name = "货主id")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主名称")
|
||||
@Excel(name = "货主名称")
|
||||
private String shipperName;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String orderNumber;
|
||||
|
||||
@ApiModelProperty("拣货单号")
|
||||
@Excel(name = "拣货单号")
|
||||
private String pickingOrderNumber;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交接作业单Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
public interface IHandoverTaskOrderService extends IService<HandoverTaskOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询交接作业单列表
|
||||
*/
|
||||
public List<HandoverTaskOrderPO> queryList(HandoverTaskOrderDO handoverTaskOrderDO);
|
||||
|
||||
/**
|
||||
* 新增交接作业单
|
||||
*/
|
||||
public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO);
|
||||
|
||||
/**
|
||||
* 修改交接作业单
|
||||
*/
|
||||
public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除交接作业单
|
||||
*/
|
||||
public Boolean delete(Long[] outTaskOrderIds);
|
||||
|
||||
|
||||
/**
|
||||
* 查询交接作业单
|
||||
*/
|
||||
public HandoverTaskOrderPO getInfo(Long outTaskOrderId);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交接作业单Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
public interface HandoverTaskOrderMapper extends BaseMapper<HandoverTaskOrder>
|
||||
{
|
||||
/**
|
||||
* 查询交接作业单列表
|
||||
*/
|
||||
public List<HandoverTaskOrderPO> queryList(HandoverTaskOrderDO handoverTaskOrderDO);
|
||||
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.mapper.HandoverTaskOrderMapper;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.po.HandoverTaskOrderPO;
|
||||
import com.mhd.wms.domain.handoverTaskOrder.repository.todo.HandoverTaskOrderDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交接作业单Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
@Service
|
||||
public class HandoverTaskOrderImpl extends ServiceImpl<HandoverTaskOrderMapper, HandoverTaskOrder> implements IHandoverTaskOrderService {
|
||||
@Autowired
|
||||
private HandoverTaskOrderMapper handoverTaskOrderMapper;
|
||||
|
||||
/**
|
||||
* 查询交接作业单列表
|
||||
*/
|
||||
@Override
|
||||
public List<HandoverTaskOrderPO> queryList(HandoverTaskOrderDO handoverTaskOrderDO)
|
||||
{
|
||||
return handoverTaskOrderMapper.queryList(handoverTaskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增交接作业单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
|
||||
BeanUtils.copyProperties(handoverTaskOrderDO,handoverTaskOrder);
|
||||
return this.save(handoverTaskOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改交接作业单
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(HandoverTaskOrderDO handoverTaskOrderDO) {
|
||||
HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
|
||||
BeanUtils.copyProperties(handoverTaskOrderDO,handoverTaskOrder);
|
||||
return this.updateById(handoverTaskOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除交接作业单
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] outTaskOrderIds ) {
|
||||
List<HandoverTaskOrder> list = new ArrayList<>();
|
||||
for (Long id : outTaskOrderIds) {
|
||||
HandoverTaskOrder handoverTaskOrder = new HandoverTaskOrder();
|
||||
handoverTaskOrder.setHandoverTaskOrderId(id);
|
||||
handoverTaskOrder.setDelFlag(2);
|
||||
list.add(handoverTaskOrder);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改交接作业单
|
||||
*/
|
||||
@Override
|
||||
public HandoverTaskOrderPO getInfo(Long outTaskOrderId) {
|
||||
HandoverTaskOrder handoverTaskOrder = this.getById(outTaskOrderId);
|
||||
HandoverTaskOrderPO handoverTaskOrderPO = new HandoverTaskOrderPO();
|
||||
BeanUtils.copyProperties(handoverTaskOrder,handoverTaskOrderPO);
|
||||
return handoverTaskOrderPO;
|
||||
}
|
||||
}
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 交接作业单对象 handover_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "交接作业单对象", description = "交接作业单响应对象")
|
||||
public class HandoverTaskOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("交接作业单id")
|
||||
private Long handoverTaskOrderId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("作业流水号")
|
||||
@Excel(name = "作业流水号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty("作业单号")
|
||||
@Excel(name = "作业单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("交接状态: 1-未交接 2-已交接")
|
||||
@Excel(name = "交接状态: 1-未交接 2-已交接")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("月台id")
|
||||
@Excel(name = "月台id")
|
||||
private Long platformId;
|
||||
|
||||
@ApiModelProperty("月台编码")
|
||||
@Excel(name = "月台编码")
|
||||
private String platformCode;
|
||||
|
||||
@ApiModelProperty("月台名称 ")
|
||||
@Excel(name = "月台名称 ")
|
||||
private String platformName;
|
||||
|
||||
@ApiModelProperty("月台使用时间管理id")
|
||||
@Excel(name = "月台使用时间管理id")
|
||||
private Long platformUseTimeId;
|
||||
|
||||
@ApiModelProperty("月台使用开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseStartTime;
|
||||
|
||||
@ApiModelProperty("月台使用结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseEndTime;
|
||||
|
||||
@ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
@Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
private Integer platformUseStatus;
|
||||
|
||||
@ApiModelProperty("出库单类型编码")
|
||||
@Excel(name = "出库单类型编码")
|
||||
private String orderTypeCode;
|
||||
|
||||
@ApiModelProperty("出库单类型名称")
|
||||
@Excel(name = "出库单类型名称")
|
||||
private String orderTypeName;
|
||||
|
||||
@ApiModelProperty("预计出货时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date expectTime;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("货主id")
|
||||
@Excel(name = "货主id")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主名称")
|
||||
@Excel(name = "货主名称")
|
||||
private String shipperName;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String orderNumber;
|
||||
|
||||
@ApiModelProperty("拣货单号")
|
||||
@Excel(name = "拣货单号")
|
||||
private String pickingOrderNumber;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+134
@@ -0,0 +1,134 @@
|
||||
package com.mhd.wms.domain.handoverTaskOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 交接作业单对象 handover_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-28
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class HandoverTaskOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("交接作业单id")
|
||||
private Long handoverTaskOrderId;
|
||||
|
||||
@ApiModelProperty("组织表ID")
|
||||
@Excel(name = "组织表ID")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("一级组织表ID")
|
||||
@Excel(name = "一级组织表ID")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("作业流水号")
|
||||
@Excel(name = "作业流水号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty("作业单号")
|
||||
@Excel(name = "作业单号")
|
||||
private String taskNumber;
|
||||
|
||||
@ApiModelProperty("交接状态: 1-未交接 2-已交接")
|
||||
@Excel(name = "交接状态: 1-未交接 2-已交接")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("月台id")
|
||||
@Excel(name = "月台id")
|
||||
private Long platformId;
|
||||
|
||||
@ApiModelProperty("月台编码")
|
||||
@Excel(name = "月台编码")
|
||||
private String platformCode;
|
||||
|
||||
@ApiModelProperty("月台名称 ")
|
||||
@Excel(name = "月台名称 ")
|
||||
private String platformName;
|
||||
|
||||
@ApiModelProperty("月台使用时间管理id")
|
||||
@Excel(name = "月台使用时间管理id")
|
||||
private Long platformUseTimeId;
|
||||
|
||||
@ApiModelProperty("月台使用开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseStartTime;
|
||||
|
||||
@ApiModelProperty("月台使用结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "月台使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date platformUseEndTime;
|
||||
|
||||
@ApiModelProperty("月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
@Excel(name = "月台使用状态:1-未使用 2-使用中 3-已释放")
|
||||
private Integer platformUseStatus;
|
||||
|
||||
@ApiModelProperty("出库单类型编码")
|
||||
@Excel(name = "出库单类型编码")
|
||||
private String orderTypeCode;
|
||||
|
||||
@ApiModelProperty("出库单类型名称")
|
||||
@Excel(name = "出库单类型名称")
|
||||
private String orderTypeName;
|
||||
|
||||
@ApiModelProperty("预计出货时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date expectTime;
|
||||
|
||||
@ApiModelProperty("仓库id")
|
||||
@Excel(name = "仓库id")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("仓库编码")
|
||||
@Excel(name = "仓库编码")
|
||||
private String warehouseCode;
|
||||
|
||||
@ApiModelProperty("仓库名称")
|
||||
@Excel(name = "仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("货主id")
|
||||
@Excel(name = "货主id")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主名称")
|
||||
@Excel(name = "货主名称")
|
||||
private String shipperName;
|
||||
|
||||
@ApiModelProperty("来源单号")
|
||||
@Excel(name = "来源单号")
|
||||
private String orderNumber;
|
||||
|
||||
@ApiModelProperty("拣货单号")
|
||||
@Excel(name = "拣货单号")
|
||||
private String pickingOrderNumber;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("交接作业单id")
|
||||
private List<Long> handoverTaskOrderIds;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user