no message
parent
33029502c7
commit
0d483ae6a2
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
AND INSTR(t_asn.customer_number,#{queryForm.customerNumber})
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY t_asn.asn_id DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue