no message

main
HUOJIN\92525 2025-04-07 10:34:39 +08:00
parent 33029502c7
commit 0d483ae6a2
7 changed files with 123 additions and 9 deletions

View File

@ -43,4 +43,18 @@ public enum AsnOrderStatusEnum implements BaseEnum {
private final String value;
private final String desc;
/**
* value desc
* @param value
* @return null
*/
public static String getDescByValue(String value) {
for (AsnOrderStatusEnum status : AsnOrderStatusEnum.values()) {
if (status.getValue().equals(value)) {
return status.getDesc();
}
}
return null;
}
}

View File

@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import lombok.Data;
import net.lab1024.sa.admin.module.business.receive.asn.constant.AsnOrderStatusEnum;
import net.lab1024.sa.admin.module.business.receive.asn.constant.AsnOrderTypeEnum;
import net.lab1024.sa.base.common.swagger.SchemaEnum;
import net.lab1024.sa.base.common.validator.enumeration.CheckEnum;
@ -23,7 +24,8 @@ public class AsnAddForm {
@Schema(description = "入库单号")
private String asnNumber;
@Schema(description = "状态")
@SchemaEnum(AsnOrderStatusEnum.class)
@CheckEnum(message = "状态", value = AsnOrderStatusEnum.class)
private String status;
@Schema(description = "客户", requiredMode = Schema.RequiredMode.REQUIRED)

View File

@ -13,8 +13,11 @@ import net.lab1024.sa.admin.module.business.receive.asn.dao.AsnDao;
import net.lab1024.sa.admin.module.business.receive.asn.domain.entity.AsnEntity;
import net.lab1024.sa.admin.module.business.receive.asn.domain.form.AsnQueryForm;
import net.lab1024.sa.admin.module.business.receive.asn.domain.vo.AsnVO;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.base.common.domain.PageResult;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@ -56,7 +59,7 @@ public class AsnQueryService {
if (customer != null) {
asnVO.setCustomerName(customer.getCustomerName());
}
AddressEntity address=addressMap.get(asnVO.getAddressId());
AddressEntity address = addressMap.get(asnVO.getAddressId());
if (address != null) {
asnVO.setName(address.getName());
}
@ -66,14 +69,33 @@ public class AsnQueryService {
/**
*
*
* @param customerNumber
* @return AsnEntity
*/
public AsnEntity queryByCustomerNumber(String customerNumber) {
if (StringUtils.isBlank(customerNumber)) {
return null;
}
LambdaQueryWrapper<AsnEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AsnEntity::getCustomerNumber, customerNumber);
return asnDao.selectOne(queryWrapper);
}
/**
* ids
*
* @param idList
* @return List<AsnEntity>
*/
public List<AsnEntity> queryAsnList(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return null;
}
LambdaQueryWrapper<AsnEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(AsnEntity::getAsnId, idList);
return asnDao.selectList(queryWrapper);
}
}

View File

@ -1,6 +1,9 @@
package net.lab1024.sa.admin.module.business.receive.asn.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import net.lab1024.sa.admin.module.business.receive.asn.constant.AsnOrderStatusEnum;
import net.lab1024.sa.admin.module.business.receive.asn.dao.AsnDao;
@ -10,6 +13,11 @@ import net.lab1024.sa.admin.module.business.receive.asn.domain.form.AsnQueryForm
import net.lab1024.sa.admin.module.business.receive.asn.domain.form.AsnUpdateForm;
import net.lab1024.sa.admin.module.business.receive.asn.domain.vo.AsnVO;
import net.lab1024.sa.admin.module.business.receive.asn.manager.AsnManager;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.manager.AsnDetailManager;
import net.lab1024.sa.admin.module.business.receive.asnDetail.service.AsnDetailQueryService;
import net.lab1024.sa.admin.util.JoinerResult;
import net.lab1024.sa.admin.util.ResponseDTOUtils;
import net.lab1024.sa.base.common.code.UserErrorCode;
import net.lab1024.sa.base.common.exception.BusinessException;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
@ -42,9 +50,15 @@ public class AsnService {
@Resource
private AsnManager asnManager;
@Resource
private AsnDetailManager asnDetailManager;
@Resource
private AsnQueryService asnQueryService;
@Resource
private AsnDetailQueryService asnDetailQueryService;
@Resource
private SerialNumberService serialNumberService;
@ -58,7 +72,7 @@ public class AsnService {
public ResponseDTO<AsnEntity> add(AsnAddForm addForm) {
AsnEntity exitAsn = asnQueryService.queryByCustomerNumber(addForm.getCustomerNumber());
if (exitAsn != null) {
throw new BusinessException(addForm.getCustomerNumber()+"客户订单号已存在");
throw new BusinessException(addForm.getCustomerNumber() + "客户订单号已存在");
}
//自动生成入库编号
addForm.setAsnNumber(serialNumberService.generate(SerialNumberIdEnum.ASN));
@ -79,7 +93,7 @@ public class AsnService {
public ResponseDTO<AsnEntity> update(AsnUpdateForm updateForm) {
AsnEntity exitAsn = asnQueryService.queryByCustomerNumber(updateForm.getCustomerNumber());
if (exitAsn != null && !exitAsn.getAsnId().equals(updateForm.getAsnId())) {
throw new BusinessException(updateForm.getCustomerNumber()+"客户订单号已存在");
throw new BusinessException(updateForm.getCustomerNumber() + "客户订单号已存在");
}
AsnEntity asnEntity = SmartBeanUtil.copy(updateForm, AsnEntity.class);
asnDao.updateById(asnEntity);
@ -89,26 +103,65 @@ public class AsnService {
/**
*
*
* @param idList id
* @param idList id
* @return ResponseDTO<String>
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> batchDelete(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
JoinerResult joiner = JoinerResult.createJoiner();
asnManager.removeBatchByIds(idList);
return ResponseDTO.ok();
//查询批量订单
List<AsnEntity> asnList = asnQueryService.queryAsnList(idList);
//将订单按状态分组;已创建的一组;非已创建的一组。
Map<Boolean, List<AsnEntity>> partitionedAsnList = asnList.stream()
.collect(Collectors.partitioningBy(asn -> AsnOrderStatusEnum.CREATED.getValue().equals(asn.getStatus())));
//已创建的订单允许删除
List<AsnEntity> createAsnList = partitionedAsnList.get(true);
//入库单集合
List<Long> asnIds = createAsnList.stream().map(AsnEntity::getAsnId).collect(Collectors.toList());
//根据入库单ID集合查询入库明细
List<AsnDetailEntity> details = asnDetailQueryService.queryByAsnIds(asnIds);
if (CollectionUtils.isNotEmpty(details)) {
asnDetailManager.removeBatchByIds(details);
}
if (CollectionUtils.isNotEmpty(createAsnList)) {
Set<String> asnCodes = createAsnList.stream().map(AsnEntity::getAsnNumber).collect(Collectors.toSet());
asnManager.removeBatchByIds(createAsnList);
joiner.getSussMsg().add(asnCodes + "订单删除成功");
}
//非已创建的订单不允许删除
List<AsnEntity> noCreateAsnList = partitionedAsnList.get(false);
if (CollectionUtils.isNotEmpty(noCreateAsnList)) {
Set<String> asnCodes = noCreateAsnList.stream().map(AsnEntity::getAsnNumber).collect(Collectors.toSet());
joiner.getErrorMsg().add(asnCodes + "订单不允许删除");
}
return ResponseDTOUtils.buildResponseDTO(joiner);
}
/**
*
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> delete(Long asnId) {
if (null == asnId) {
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
AsnEntity asn = asnDao.selectById(asnId);
String status = asn.getStatus();
// 只有已创建的订单才允许删除
if (!AsnOrderStatusEnum.CREATED.getValue().equals(status)) {
return ResponseDTO.userErrorParam(AsnOrderStatusEnum.getDescByValue(status) + "的订单不允许删除");
}
List<AsnDetailEntity> details = asnDetailQueryService.queryByAsnId(asnId);
if (CollectionUtils.isNotEmpty(details)) {
asnDetailManager.removeBatchByIds(details);
}
asnDao.deleteById(asnId);
return ResponseDTO.ok();
}

View File

@ -19,6 +19,7 @@ import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo.AsnDetai
import net.lab1024.sa.admin.module.business.receive.asnDetail.manager.AsnDetailManager;
import net.lab1024.sa.base.common.domain.PageResult;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@ -67,11 +68,29 @@ public class AsnDetailQueryService {
* @return List<AsnDetailEntity>
*/
public List<AsnDetailEntity> queryByAsnId(Long asnId) {
if (asnId == null) {
return null;
}
LambdaQueryWrapper<AsnDetailEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AsnDetailEntity::getAsnId, asnId);
return asnDetailDao.selectList(queryWrapper);
}
/**
* ids
*
* @param asnIds id
* @return List<AsnDetailEntity>
*/
public List<AsnDetailEntity> queryByAsnIds(List<Long> asnIds) {
if (CollectionUtils.isEmpty(asnIds)) {
return null;
}
LambdaQueryWrapper<AsnDetailEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(AsnDetailEntity::getAsnId, asnIds);
return asnDetailDao.selectList(queryWrapper);
}
/**
* ids
*
@ -79,6 +98,9 @@ public class AsnDetailQueryService {
* @return List<AsnDetailEntity>
*/
public List<AsnDetailEntity> queryAsnDetailList(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return null;
}
LambdaQueryWrapper<AsnDetailEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(AsnDetailEntity::getAsnDetailId, idList);
return asnDetailDao.selectList(queryWrapper);

View File

@ -34,6 +34,7 @@
AND INSTR(t_asn.customer_number,#{queryForm.customerNumber})
</if>
</where>
ORDER BY t_asn.asn_id DESC
</select>

View File

@ -1,7 +1,7 @@
spring:
# 数据库连接信息
datasource:
url: jdbc:p6spy:mysql://127.0.0.1:53306/smart_admin_v3?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
url: jdbc:p6spy:mysql://47.103.100.52:53306/nc_wms?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: Youchain@56
driver-class-name: com.p6spy.engine.spy.P6SpyDriver