|
|
|
@ -3,10 +3,12 @@ package org.springblade.desk.order.service.impl; |
|
|
|
import com.alibaba.cloud.commons.lang.StringUtils; |
|
|
|
import com.alibaba.cloud.commons.lang.StringUtils; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springblade.common.constant.CommonConstant; |
|
|
|
import org.springblade.common.constant.CommonConstant; |
|
|
|
import org.springblade.common.utils.StringPrefixUtils; |
|
|
|
import org.springblade.common.utils.StringPrefixUtils; |
|
|
|
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
import org.springblade.core.mp.base.BaseEntity; |
|
|
|
import org.springblade.core.mp.base.BaseEntity; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
@ -42,7 +44,9 @@ import org.springblade.desk.order.service.IPlateGoodsRecordService; |
|
|
|
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; |
|
|
|
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; |
|
|
|
import org.springblade.scheduling.pojo.entity.QualityGradeEntity; |
|
|
|
import org.springblade.scheduling.pojo.entity.QualityGradeEntity; |
|
|
|
import org.springblade.system.cache.DictCache; |
|
|
|
import org.springblade.system.cache.DictCache; |
|
|
|
|
|
|
|
import org.springblade.wms.feign.WmsTaskClient; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.BigDecimal; |
|
|
|
@ -72,6 +76,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor |
|
|
|
private final IMaterialQuotaService materialQuotaService; |
|
|
|
private final IMaterialQuotaService materialQuotaService; |
|
|
|
private final ICraftAbilityService craftAbilityService; |
|
|
|
private final ICraftAbilityService craftAbilityService; |
|
|
|
private final IQualityGradeService qualityGradeService; |
|
|
|
private final IQualityGradeService qualityGradeService; |
|
|
|
|
|
|
|
private final WmsTaskClient wmsTaskClient; |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) { |
|
|
|
public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) { |
|
|
|
List<PlateGoodsRecord> dataList = baseMapper.selectPage(page, entity); |
|
|
|
List<PlateGoodsRecord> dataList = baseMapper.selectPage(page, entity); |
|
|
|
@ -435,22 +440,55 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public boolean secondConfirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo) { |
|
|
|
public boolean secondConfirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo) { |
|
|
|
List<PlateGoodsRecord> plateGoodsRecordList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
ids.forEach(id -> { |
|
|
|
|
|
|
|
PlateGoodsRecord plateGoodsRecord = new PlateGoodsRecord(); |
|
|
|
for (Long id : ids) { |
|
|
|
plateGoodsRecord.setId(id); |
|
|
|
// 1. 查询完整对象
|
|
|
|
|
|
|
|
PlateGoodsRecord plateGoodsRecord = this.getById(id); |
|
|
|
|
|
|
|
if (plateGoodsRecord == null) { |
|
|
|
|
|
|
|
throw new ServiceException("记录不存在,id:" + id); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 设置审批信息
|
|
|
|
plateGoodsRecord.setApprovalMan2(user.getUserId()); |
|
|
|
plateGoodsRecord.setApprovalMan2(user.getUserId()); |
|
|
|
plateGoodsRecord.setApprovalTime2(DateUtil.now()); |
|
|
|
plateGoodsRecord.setApprovalTime2(DateUtil.now()); |
|
|
|
plateGoodsRecord.setApprovalStatus2(approvalStatus); |
|
|
|
plateGoodsRecord.setApprovalStatus2(approvalStatus); |
|
|
|
plateGoodsRecord.setApprovalMemo2(approvalMemo); |
|
|
|
plateGoodsRecord.setApprovalMemo2(approvalMemo); |
|
|
|
plateGoodsRecordList.add(plateGoodsRecord); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return this.updateBatchById(plateGoodsRecordList); |
|
|
|
// 3. 审批成功时的额外处理
|
|
|
|
|
|
|
|
if (approvalStatus.equals(PlateGoodsEnum.SECOND_STATUS_PASS.getCode())) { |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
BigDecimal goodsDemand = plateGoodsRecord.getGoodsDemand(); |
|
|
|
|
|
|
|
Double goodsDemandDouble = goodsDemand != null |
|
|
|
|
|
|
|
? goodsDemand.setScale(6, RoundingMode.HALF_UP).doubleValue() |
|
|
|
|
|
|
|
: null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Long goodsBoId = wmsTaskClient.buyOrderApply( |
|
|
|
|
|
|
|
plateGoodsRecord.getGoodsCode(), |
|
|
|
|
|
|
|
goodsDemandDouble, |
|
|
|
|
|
|
|
plateGoodsRecord.getCreateUser(), |
|
|
|
|
|
|
|
plateGoodsRecord.getCreateTime(), |
|
|
|
|
|
|
|
user.getUserId(), |
|
|
|
|
|
|
|
plateGoodsRecord.getUpdateTime() |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
plateGoodsRecord.setGoodsBoId(goodsBoId); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
log.error("调用ERP失败,id:{}", id, e); |
|
|
|
|
|
|
|
throw new ServiceException("调用ERP接口失败:" + e.getMessage()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 更新数据库
|
|
|
|
|
|
|
|
this.updateById(plateGoodsRecord); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
|