二级审批

liweidong
liweidong-hj 2 weeks ago
parent edf5ba4d53
commit 3a40c3679b
  1. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml
  2. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java

@ -85,11 +85,11 @@
FROM MES_YIELD_ORDER yo
LEFT JOIN MES_PLATE_GOODS_RECORD_DETAIL grd ON yo.id = grd.YO_ID
LEFT JOIN MES_WORK_ORDER wo on yo.ID = wo.YO_ID
LEFT JOIN BS_TEAM_SET ts on wo.ts_Id = ts.ID
LEFT JOIN BS_CENTER_TEAM ct on wo.ts_Id = ct.TS_ID
WHERE yo.IS_DELETED = 0 AND grd.ID IS NULL
and wo.OEM = 0
<if test = "wcId != null and wcId != ''">
AND ts.WC_ID = #{wcId}
AND ct.WC_ID = #{wcId}
</if>
<if test = "plateGoodsCode != null and plateGoodsCode != ''">
AND yo.PLATE_GOODS_CODE = #{plateGoodsCode}

@ -3,10 +3,12 @@ package org.springblade.desk.order.service.impl;
import com.alibaba.cloud.commons.lang.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.CommonConstant;
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.BaseServiceImpl;
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.QualityGradeEntity;
import org.springblade.system.cache.DictCache;
import org.springblade.wms.feign.WmsTaskClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
@ -72,6 +76,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
private final IMaterialQuotaService materialQuotaService;
private final ICraftAbilityService craftAbilityService;
private final IQualityGradeService qualityGradeService;
private final WmsTaskClient wmsTaskClient;
@Override
public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) {
List<PlateGoodsRecord> dataList = baseMapper.selectPage(page, entity);
@ -435,22 +440,55 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean secondConfirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo) {
List<PlateGoodsRecord> plateGoodsRecordList = new ArrayList<>();
BladeUser user = AuthUtil.getUser();
ids.forEach(id -> {
PlateGoodsRecord plateGoodsRecord = new PlateGoodsRecord();
plateGoodsRecord.setId(id);
for (Long id : ids) {
// 1. 查询完整对象
PlateGoodsRecord plateGoodsRecord = this.getById(id);
if (plateGoodsRecord == null) {
throw new ServiceException("记录不存在,id:" + id);
}
// 2. 设置审批信息
plateGoodsRecord.setApprovalMan2(user.getUserId());
plateGoodsRecord.setApprovalTime2(DateUtil.now());
plateGoodsRecord.setApprovalStatus2(approvalStatus);
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;
}
/**

Loading…
Cancel
Save