|
|
@ -6,6 +6,7 @@ import cn.hutool.json.JSON; |
|
|
|
import com.alibaba.fastjson.JSONArray; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
@ -24,6 +25,7 @@ import org.nl.wms.ext.eas.WmsToEasService; |
|
|
|
import org.nl.wms.ext.srm.WmsToSrmService; |
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Propagation; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
@ -95,6 +97,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
Page<EasOutInBill> easOutInBills = easOutInBillMapper.selectPage(new Page<>(params.getPage(), params.getSize()), new QueryWrapper<EasOutInBill>() |
|
|
|
.lambda() |
|
|
|
.eq(ObjectUtil.isNotEmpty(params.getDjlx()), EasOutInBill::getDjlx, params.getDjlx()) |
|
|
|
.eq(ObjectUtil.isNotEmpty(params.getDjzt()), EasOutInBill::getDjzt, "1".equals(params.getDjzt()) ? "提交" : "审核") |
|
|
|
.nested(ObjectUtil.isNotEmpty(params.getFuzzy()), |
|
|
|
i -> i.like(EasOutInBill::getDjid, params.getFuzzy()) |
|
|
|
.or() |
|
|
@ -142,7 +145,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
* 查询本地的出入库单据 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public Set<String> queryExistBills() { |
|
|
|
public List<EasOutInBillDetail> queryExistBills() { |
|
|
|
return easOutInBillMapper.queryExistBills(); |
|
|
|
} |
|
|
|
|
|
|
@ -150,7 +153,7 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
* 查询本地未提交的出入库单据 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public Set<String> queryLocalBills() { |
|
|
|
public List<EasOutInBillDetail> queryLocalBills() { |
|
|
|
return easOutInBillMapper.queryLocalBills(); |
|
|
|
} |
|
|
|
|
|
|
@ -164,15 +167,64 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
easOutInBillMapper.insert(getBasicInfo(entity, true)); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建 |
|
|
|
* |
|
|
|
* @param detailList 出入库单据明细 |
|
|
|
*/ |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void createBills(List<EasOutInBillDetail> detailList) { |
|
|
|
public void insertOrUpdateBills(List<EasOutInBillDetail> easOutInBillDetails, List<EasOutInBillDetail> existingIds) { |
|
|
|
CompletableFuture.runAsync(() -> { |
|
|
|
try { |
|
|
|
insertBills(easOutInBillDetails, existingIds); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("异常信息:" + e.toString()); |
|
|
|
} |
|
|
|
}, pool); |
|
|
|
CompletableFuture.runAsync(() -> { |
|
|
|
try { |
|
|
|
updateBills(easOutInBillDetails, existingIds); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("异常信息:" + e.toString()); |
|
|
|
} |
|
|
|
}, pool); |
|
|
|
CompletableFuture.runAsync(() -> { |
|
|
|
try { |
|
|
|
//todo 检查事务是否会失效
|
|
|
|
autoDeleteBill(easOutInBillDetails, existingIds); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("异常信息:" + e.toString()); |
|
|
|
} |
|
|
|
}, pool); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void insertBills(List<EasOutInBillDetail> easOutInBillDetails, List<EasOutInBillDetail> existingIds) { |
|
|
|
Set<String> ids = existingIds.stream().map(EasOutInBillDetail::getFlid).collect(Collectors.toSet()); |
|
|
|
// 过滤出需要插入的新单据,并根据来源设置 ID
|
|
|
|
List<EasOutInBillDetail> insertEasBills = easOutInBillDetails.stream() |
|
|
|
.filter(bill -> !ids.contains(bill.getFlid())) |
|
|
|
.peek(bill -> { |
|
|
|
bill.setId(IdUtil.getStringId()); |
|
|
|
bill.setCode(IdUtil.getStringId()); |
|
|
|
bill.setTjkwbm(bill.getKwbm()); |
|
|
|
bill.setSysl(bill.getSl()); |
|
|
|
bill.setCzsl(BigDecimal.ZERO); |
|
|
|
bill.setKcsl(BigDecimal.ZERO); |
|
|
|
if (bill.getSl().compareTo(BigDecimal.ZERO) < 0) { |
|
|
|
bill.setSl(bill.getSl().abs()); |
|
|
|
} |
|
|
|
if (bill.getDjly() == null) { |
|
|
|
bill.setDjly("1"); |
|
|
|
} else { |
|
|
|
//srm的未入库改为提交
|
|
|
|
bill.setDjzt("提交"); |
|
|
|
} |
|
|
|
}) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (CollectionUtils.isNotEmpty(insertEasBills)) { |
|
|
|
this.insertBills(insertEasBills); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void insertBills(List<EasOutInBillDetail> detailList) { |
|
|
|
List<EasOutInBillDetail> distinctDetailList = new ArrayList<>(detailList.stream() |
|
|
|
.collect(Collectors.toMap(EasOutInBillDetail::getDjid, Function.identity(), (existing, replacement) -> existing)) |
|
|
|
.values()); |
|
|
@ -180,6 +232,9 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
.map(detail -> { |
|
|
|
EasOutInBill bill = new EasOutInBill(); |
|
|
|
bill.setId(IdUtil.getStringId()); |
|
|
|
bill.setBmbm(detail.getBmbm()); |
|
|
|
bill.setBmmc(detail.getBmmc()); |
|
|
|
bill.setDjid(detail.getDjid()); |
|
|
|
bill.setDjid(detail.getDjid()); |
|
|
|
bill.setDjbh(detail.getDjbh()); |
|
|
|
bill.setDjlx(detail.getDjlx()); |
|
|
@ -195,7 +250,6 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
bill.setBtbz(detail.getBtbz()); |
|
|
|
bill.setCksj(detail.getCksj()); |
|
|
|
bill.setLlr(detail.getLlr()); |
|
|
|
bill.setDjly(detail.getDjly() == null ? "1" : "2"); |
|
|
|
return bill; |
|
|
|
}) |
|
|
|
.collect(Collectors.toList()); |
|
|
@ -225,6 +279,89 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
}, pool); |
|
|
|
} |
|
|
|
|
|
|
|
private void updateBills(List<EasOutInBillDetail> easOutInBillDetails, List<EasOutInBillDetail> existingIds) { |
|
|
|
Set<String> ids = existingIds.stream().map(EasOutInBillDetail::getFlid).collect(Collectors.toSet()); |
|
|
|
// 过滤出需要插入的新单据,并根据来源设置 ID
|
|
|
|
List<EasOutInBillDetail> insertEasBills = easOutInBillDetails.stream() |
|
|
|
.filter(bill -> ids.contains(bill.getDjid())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (CollectionUtils.isNotEmpty(insertEasBills)) { |
|
|
|
//比较insertEasBills与existingIds的修改时间进行按需更新
|
|
|
|
for (EasOutInBillDetail entity : insertEasBills) { |
|
|
|
EasOutInBillDetail existing = existingIds.stream() |
|
|
|
.filter(e -> e.getFlid().equals(entity.getFlid()) && e.getXgsj().after(entity.getXgsj())) |
|
|
|
.findFirst() |
|
|
|
.orElse(null); |
|
|
|
if (existing != null) { |
|
|
|
EasOutInBillDetail updateEntity = new EasOutInBillDetail(); |
|
|
|
updateEntity.setDjlx(entity.getDjlx()); |
|
|
|
updateEntity.setYwlx(entity.getYwlx()); |
|
|
|
updateEntity.setZzbm(entity.getZzbm()); |
|
|
|
updateEntity.setZzmc(entity.getZzmc()); |
|
|
|
updateEntity.setBmbm(entity.getBmbm()); |
|
|
|
updateEntity.setBmmc(entity.getBmmc()); |
|
|
|
updateEntity.setDjzt(entity.getDjzt()); |
|
|
|
updateEntity.setBtbz(entity.getBtbz()); |
|
|
|
updateEntity.setCjsj(entity.getCjsj()); |
|
|
|
updateEntity.setYwrq(entity.getYwrq()); |
|
|
|
updateEntity.setCjr(entity.getCjr()); |
|
|
|
updateEntity.setFlxh(entity.getFlxh()); |
|
|
|
updateEntity.setWlbm(entity.getWlbm()); |
|
|
|
updateEntity.setWlmc(entity.getWlmc()); |
|
|
|
updateEntity.setGgxh(entity.getGgxh()); |
|
|
|
updateEntity.setSl(entity.getSl()); |
|
|
|
updateEntity.setCkbm(entity.getCkbm()); |
|
|
|
updateEntity.setCkmc(entity.getCkmc()); |
|
|
|
updateEntity.setKwbm(entity.getKwbm()); |
|
|
|
updateEntity.setKwmc(entity.getKwmc()); |
|
|
|
updateEntity.setFlbz(entity.getFlbz()); |
|
|
|
updateEntity.setTrackno(entity.getTrackno()); |
|
|
|
updateEntity.setPc(entity.getPc()); |
|
|
|
updateEntity.setWlmc(entity.getWlmc()); |
|
|
|
updateEntity.setXgsj(entity.getXgsj()); |
|
|
|
easOutInBillDetailMapper.update(updateEntity, new QueryWrapper<EasOutInBillDetail>().eq("flid", entity.getFlid())); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 定时删除源头已删除单据 |
|
|
|
*/ |
|
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) |
|
|
|
public void autoDeleteBill(List<EasOutInBillDetail> easOutInBillDetails, List<EasOutInBillDetail> existingIds) { |
|
|
|
// 获取easOutInBillDetails中flid字段的集合
|
|
|
|
Set<String> easFlidSet = easOutInBillDetails.stream() |
|
|
|
.map(EasOutInBillDetail::getFlid) |
|
|
|
.collect(Collectors.toSet()); |
|
|
|
// 找出existingIds中flid字段集合不在easOutInBillDetails中flid字段集合中的记录
|
|
|
|
List<EasOutInBillDetail> idsToDelete = existingIds.stream() |
|
|
|
.filter(e -> !easFlidSet.contains(e.getFlid())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (CollectionUtils.isNotEmpty(idsToDelete)) { |
|
|
|
//找出idsToDelete中DJID相同且元素只有一个的集合,说明是最后一个明细行要被删除,那么主单据也要被删除
|
|
|
|
Map<String, Long> idCounts = idsToDelete.stream() |
|
|
|
.collect(Collectors.groupingBy(EasOutInBillDetail::getDjid, Collectors.counting())); |
|
|
|
Set<String> billIds = idCounts.entrySet().stream() |
|
|
|
.filter(entry -> entry.getValue() == 1) |
|
|
|
.map(Map.Entry::getKey) |
|
|
|
.collect(Collectors.toSet()); |
|
|
|
if (CollectionUtils.isNotEmpty(billIds)) { |
|
|
|
//删除主数据
|
|
|
|
deleteAll(billIds); |
|
|
|
} |
|
|
|
//删除明细单据
|
|
|
|
LambdaQueryWrapper<EasOutInBillDetail> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
Set<String> filds = idsToDelete.stream().map(EasOutInBillDetail::getFlid).collect(Collectors.toSet()); |
|
|
|
queryWrapper.in(EasOutInBillDetail::getFlid, filds); |
|
|
|
easOutInBillDetailMapper.delete(queryWrapper); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 编辑 |
|
|
|
* |
|
|
@ -244,19 +381,49 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
* 单据审核 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) |
|
|
|
public void audit(Set<String> ids) { |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void audit(Set<String> ids, boolean isDetail) { |
|
|
|
if (CollectionUtils.isEmpty(ids)) { |
|
|
|
throw new BadRequestException("id不能为空!"); |
|
|
|
} |
|
|
|
List<EasOutInBillDto> easBills = new ArrayList<>(); |
|
|
|
List<EasOutInBillDto> srmBills = new ArrayList<>(); |
|
|
|
//明细行自动审核
|
|
|
|
if (!isDetail) { |
|
|
|
List<EasBillDetailDto> easBillDetailList = easOutInBillDetailMapper.queryDetailList(ids); |
|
|
|
if (CollectionUtils.isEmpty(easBillDetailList)) { |
|
|
|
throw new BadRequestException("找不到该单据明细项!"); |
|
|
|
} |
|
|
|
EasOutInBillDto easOutInBillDto = new EasOutInBillDto(); |
|
|
|
easOutInBillDto.setBillNo(easBillDetailList.get(0).getBillNo()); |
|
|
|
easOutInBillDto.setBillId(easBillDetailList.get(0).getBillId()); |
|
|
|
easOutInBillDto.setBillType(easBillDetailList.get(0).getBillType()); |
|
|
|
easOutInBillDto.setDjly(easBillDetailList.get(0).getDjly()); |
|
|
|
easOutInBillDto.setInWhUser(SecurityUtils.getCurrentNickName() == null ? "admin" : SecurityUtils.getCurrentNickName()); |
|
|
|
easOutInBillDto.setDescription(easBillDetailList.get(0).getDescription()); |
|
|
|
easOutInBillDto.setBizDate(easBillDetailList.get(0).getBizDate()); |
|
|
|
List<EasOutInBillDetailDto> entrys = new ArrayList<>(); |
|
|
|
easBillDetailList.forEach(r -> { |
|
|
|
EasOutInBillDetailDto dto = new EasOutInBillDetailDto(); |
|
|
|
BeanUtils.copyProperties(r, dto); |
|
|
|
entrys.add(dto); |
|
|
|
} |
|
|
|
); |
|
|
|
easOutInBillDto.setEntrys(entrys); |
|
|
|
if ("1".equals(easOutInBillDto.getDjly())) { |
|
|
|
easBills.add(easOutInBillDto); |
|
|
|
} else { |
|
|
|
srmBills.add(easOutInBillDto); |
|
|
|
} |
|
|
|
} else { |
|
|
|
//所有主表
|
|
|
|
List<EasOutInBillDto> easOutInBillList = easOutInBillMapper.queryBillList(ids); |
|
|
|
//所有明细表
|
|
|
|
List<EasOutInBillDetailDto> easOutInBillDetailList = easOutInBillDetailMapper.queryBillDetailList(ids); |
|
|
|
long count= easOutInBillDetailList.stream().filter(r->r.getQty().compareTo(BigDecimal.ZERO)==0).count(); |
|
|
|
if(count==easOutInBillDetailList.size()){ |
|
|
|
throw new BadRequestException("该单据无任何出入库操作,请检查"); |
|
|
|
} |
|
|
|
// long count = easOutInBillDetailList.stream().filter(r -> r.getQty().compareTo(BigDecimal.ZERO) == 0).count();
|
|
|
|
// if (count == easOutInBillDetailList.size()) {
|
|
|
|
// throw new BadRequestException("该单据无任何出入库操作,请检查");
|
|
|
|
// }
|
|
|
|
//报文组合
|
|
|
|
if (CollectionUtils.isNotEmpty(easOutInBillList)) { |
|
|
|
easOutInBillList.forEach(b -> { |
|
|
@ -267,68 +434,45 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
b.setEntrys(billDetails); |
|
|
|
} |
|
|
|
}); |
|
|
|
List<EasOutInBillDto> easBills = easOutInBillList.stream().filter(r -> "1".equals(r.getDjly())).collect(Collectors.toList()); |
|
|
|
List<EasOutInBillDto> srmBills = easOutInBillList.stream().filter(r -> "2".equals(r.getDjly())).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
easBills = easOutInBillList.stream().filter(r -> "1".equals(r.getDjly())).collect(Collectors.toList()); |
|
|
|
srmBills = easOutInBillList.stream().filter(r -> "2".equals(r.getDjly())).collect(Collectors.toList()); |
|
|
|
} |
|
|
|
//单据头多选审核
|
|
|
|
if (easBills.size() > 1 || srmBills.size() > 1) { |
|
|
|
//eas单据推送
|
|
|
|
if (CollectionUtils.isNotEmpty(easBills)) { |
|
|
|
List<EasOutInBillDto> finalEasBills = easBills; |
|
|
|
CompletableFuture.runAsync(() -> { |
|
|
|
syncEasAuditBills(easBills); |
|
|
|
syncEasAuditBills(finalEasBills); |
|
|
|
}, pool); |
|
|
|
} |
|
|
|
//srm单据推送
|
|
|
|
if (CollectionUtils.isNotEmpty(srmBills)) { |
|
|
|
List<EasOutInBillDto> finalSrmBills = srmBills; |
|
|
|
CompletableFuture.runAsync(() -> { |
|
|
|
syncSrmAuditBills(srmBills); |
|
|
|
syncSrmAuditBills(finalSrmBills); |
|
|
|
}, pool); |
|
|
|
} |
|
|
|
} else { |
|
|
|
//eas单据推送
|
|
|
|
if (CollectionUtils.isNotEmpty(easBills)) { |
|
|
|
asyncAuditBill(easBills.get(0)); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) |
|
|
|
public void syncEasAuditBills(List<EasOutInBillDto> bills) { |
|
|
|
for (EasOutInBillDto bill : bills) { |
|
|
|
try { |
|
|
|
EasData easData = new EasData(); |
|
|
|
easData.setData(bill); |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(easData, SerializerFeature.WriteMapNullValue); |
|
|
|
wmsToEasService.sendWebService(billJson); |
|
|
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId())); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString()); |
|
|
|
//throw new BadRequestException(e.toString());
|
|
|
|
} |
|
|
|
} |
|
|
|
// List<String> billIds = bills.stream().map(EasOutInBillDto::getBillId).collect(Collectors.toList());
|
|
|
|
// if (CollectionUtils.isNotEmpty(billIds)) {
|
|
|
|
// easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "提交").in("djid", billIds));
|
|
|
|
// }
|
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) |
|
|
|
public void syncSrmAuditBills(List<EasOutInBillDto> bills) { |
|
|
|
for (EasOutInBillDto bill : bills) { |
|
|
|
try { |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(bill, SerializerFeature.WriteMapNullValue); |
|
|
|
wmsToSrmService.sendWebPostData(billJson); |
|
|
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId())); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString()); |
|
|
|
//throw new BadRequestException(e.toString());
|
|
|
|
//srm单据推送
|
|
|
|
if (CollectionUtils.isNotEmpty(srmBills)) { |
|
|
|
asyncAuditBill(srmBills.get(0)); |
|
|
|
} |
|
|
|
} |
|
|
|
// List<String> billIds = bills.stream().map(EasOutInBillDto::getBillId).collect(Collectors.toList());
|
|
|
|
// if (CollectionUtils.isNotEmpty(billIds)) {
|
|
|
|
// easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "提交").in("djid", billIds));
|
|
|
|
// }
|
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW) |
|
|
|
/** |
|
|
|
* 单个单据审核 |
|
|
|
*/ |
|
|
|
public void asyncAuditBill(EasOutInBillDto bill) { |
|
|
|
try { |
|
|
|
if (bill.getDjly().equals("1")) { |
|
|
|
MsgDto msgDto = new MsgDto(); |
|
|
|
MsgDto msgDto; |
|
|
|
EasData easData = new EasData(); |
|
|
|
easData.setData(bill); |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(easData, SerializerFeature.WriteMapNullValue); |
|
|
@ -339,22 +483,59 @@ public class EasOutInBillServiceImpl extends ServiceImpl<EasOutInBillMapper, Eas |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
SrmMsgDto srmMsgDto = new SrmMsgDto(); |
|
|
|
SrmMsgDto srmMsgDto; |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(bill, SerializerFeature.WriteMapNullValue); |
|
|
|
srmMsgDto = wmsToSrmService.sendWebPostData(billJson); |
|
|
|
if (srmMsgDto != null) { |
|
|
|
if (srmMsgDto.getSuccess().equals("false")) { |
|
|
|
if ("false".equals(srmMsgDto.getSuccess())) { |
|
|
|
throw new BadRequestException(srmMsgDto.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
updateBills(bill); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString()); |
|
|
|
throw new BadRequestException(e.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Eas多个单据审核 |
|
|
|
*/ |
|
|
|
public void syncEasAuditBills(List<EasOutInBillDto> bills) { |
|
|
|
for (EasOutInBillDto bill : bills) { |
|
|
|
try { |
|
|
|
EasData easData = new EasData(); |
|
|
|
easData.setData(bill); |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(easData, SerializerFeature.WriteMapNullValue); |
|
|
|
wmsToEasService.sendWebService(billJson); |
|
|
|
updateBills(bill); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString()); |
|
|
|
throw new BadRequestException(e.toString()); |
|
|
|
} |
|
|
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Srm多个单据审核 |
|
|
|
*/ |
|
|
|
public void syncSrmAuditBills(List<EasOutInBillDto> bills) { |
|
|
|
for (EasOutInBillDto bill : bills) { |
|
|
|
try { |
|
|
|
String billJson = com.alibaba.fastjson.JSON.toJSONString(bill, SerializerFeature.WriteMapNullValue); |
|
|
|
wmsToSrmService.sendWebPostData(billJson); |
|
|
|
updateBills(bill); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("推送Eas单据失败,单据号为:[" + bill.getBillId() + "]异常原因:" + e.toString()); |
|
|
|
throw new BadRequestException(e.toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void updateBills(EasOutInBillDto bill) { |
|
|
|
easOutInBillMapper.update(null, new UpdateWrapper<EasOutInBill>().set("djzt", "审核").set("update_id", SecurityUtils.getCurrentUserId()).set("update_name", SecurityUtils.getCurrentNickName()).set("update_time", DateUtil.format(DateUtil.beginOfDay(DateUtil.date()), "yyyy-MM-dd")).eq("djid", bill.getBillId())); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|