wei.zhou

提交代码

......@@ -32,7 +32,7 @@ public class ChmConsignmentDetail implements Serializable {
* 运单
*/
@ManyToOne(targetEntity = ChmConsignment.class)
@JoinColumn(name = "CONSIGNMENT_ID",updatable = false)
@JoinColumn(name = "CONSIGNMENT_ID")
private ChmConsignment chmConsignment;
......
......@@ -150,4 +150,9 @@ public class ChmConsignmentDetailService {
}
public void deleteChmConsignmentDetailBatch(List<Long> idList){
chmConsignmentDetailRepository.deleteChmConsignmentDetailByChnConIdList(idList);
}
}
......
......@@ -176,7 +176,7 @@ public class ChmConsignmentService {
result.setConsStatusDic(transferWaybillStatusDictionaryEntries);
result.setConsStatus(transferWaybillStatusDictionaryEntries.getChineseName());
//推送时间作为创建时间,可以用来校验数据的有序性,如果新的推送时间小于已有的创建时间,就不更新数据
result.setCreateTime(pushTime);
result.setCreateTime(new Date());
result.setUpdateTime(pushTime);
......@@ -280,22 +280,34 @@ public class ChmConsignmentService {
//TODO 更新数据
log.info("更新主单"+ mawb.getBillNo());
for(ChmConsignmentDetail newDetail:chmConsignment.getChmConsignmentDetailList()){
for(ChmConsignmentDetail oldDetail: chmConsignmentDB.getChmConsignmentDetailList()){
if(Objects.equals(newDetail.getSkuCode(),oldDetail.getSkuCode())){
//newDetail.setChmConsignment(chmConsignmentDB);
newDetail.setId(oldDetail.getId());
}
}
//由于订单明细中,无法确定唯一一条数据,所以无法做到update,只能先删除在插入
// for(ChmConsignmentDetail newDetail:chmConsignment.getChmConsignmentDetailList()){
// for(ChmConsignmentDetail oldDetail: chmConsignmentDB.getChmConsignmentDetailList()){
// if(Objects.equals(newDetail.getSkuCode(),oldDetail.getSkuCode())){
// //newDetail.setChmConsignment(chmConsignmentDB);
// newDetail.setId(oldDetail.getId());
// }
// }
// }
List<Long> detailIdList = new ArrayList();
chmConsignmentDB.getChmConsignmentDetailList().forEach(detail->{
detailIdList.add(detail.getId());
});
if(detailIdList.size()>0){
chmConsignmentDetailService.deleteChmConsignmentDetailBatch(detailIdList);
chmConsignmentDB.setChmConsignmentDetailList(null);
}
chmConsignment.setId(chmConsignmentDB.getId());
chmConsignment.setUpdateTime(pushTime);
ChmConsignment updateResult = this.saveChmConsignment(chmConsignment);
if(!Objects.equals(updateResult,null)){
log.info("主单"+ mawb.getBillNo()+" 保存成功,chmConsignmentId:"+updateResult.getId());
log.info("主单"+ mawb.getBillNo()+" 更新成功,chmConsignmentId:"+updateResult.getId());
}else{
log.info("主单"+ mawb.getBillNo()+" 保存失败");
log.info("主单"+ mawb.getBillNo()+" 更新失败");
}
}
......