新购接口优化
This commit is contained in:
parent
a503514fc5
commit
1bc0b04d83
|
|
@ -30,9 +30,7 @@ import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper;
|
|||
import com.bonus.material.purchase.domain.PurchaseCheckInfo;
|
||||
import com.bonus.material.purchase.service.IPurchaseCheckInfoService;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
|
@ -165,12 +163,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
|
||||
// 赋值创建时间
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
||||
try {
|
||||
// 查询新购任务当月最大单号
|
||||
Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId()));
|
||||
|
|
@ -178,48 +174,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
thisMonthMaxOrder = Optional.ofNullable(thisMonthMaxOrder).orElse(0);
|
||||
// 生成单号
|
||||
TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder);
|
||||
Long taskId;
|
||||
|
||||
// 开启事务
|
||||
TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition());
|
||||
if (tmTaskMapper.insertTmTask(tmTask) > 0) {
|
||||
taskId = tmTask.getTaskId();
|
||||
} else {
|
||||
transactionManager.rollback(transactionStatus);
|
||||
return AjaxResult.error("新增任务失败_task表插入0条");
|
||||
}
|
||||
|
||||
// tm_task 插入成功后,再往新购验收info表中插入数据
|
||||
tmTaskMapper.insertTmTask(tmTask);
|
||||
Long taskId = tmTask.getTaskId();
|
||||
purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId);
|
||||
if (purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo()) > 0) {
|
||||
purchaseCheckInfo.getPurchaseCheckDetailsList().forEach(
|
||||
details -> {
|
||||
details.setTaskId(taskId);
|
||||
details.setInputStatus("0");
|
||||
});
|
||||
// 批量插入详情数据
|
||||
boolean purchaseCheckDetailsListAddResult = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckInfo.getPurchaseCheckDetailsList()) > 0;
|
||||
|
||||
// 批量插入附件列表
|
||||
List<PurchaseCheckDetails> purchaseCheckDetailsList = purchaseCheckInfo.getPurchaseCheckDetailsList();
|
||||
for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) {
|
||||
List<BmFileInfo> bmFileInfos = purchaseCheckDetails.getBmFileInfos();
|
||||
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||
bmFileInfos.stream().forEach(o -> o.setTaskId(taskId));
|
||||
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
||||
}
|
||||
}
|
||||
|
||||
if (purchaseCheckDetailsListAddResult) {
|
||||
transactionManager.commit(transactionStatus);
|
||||
return AjaxResult.success("新增任务成功");
|
||||
} else {
|
||||
transactionManager.rollback(transactionStatus);
|
||||
return AjaxResult.error("新增任务失败,详情表插入0条");
|
||||
}
|
||||
int count = purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo());
|
||||
if (count > 0) {
|
||||
return insertPurchaseCheckDetails(purchaseCheckInfo.getPurchaseCheckDetailsList(), taskId);
|
||||
} else {
|
||||
transactionManager.rollback(transactionStatus);
|
||||
return AjaxResult.error("新增任务失败,info表插入0条");
|
||||
return AjaxResult.error("新增任务失败,purchase_check_info表插入0条");
|
||||
}
|
||||
} catch (DataAccessException e) {
|
||||
return AjaxResult.error("数据库操作失败:" + e.getMessage());
|
||||
|
|
@ -228,6 +190,29 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
}
|
||||
}
|
||||
|
||||
private AjaxResult insertPurchaseCheckDetails(List<PurchaseCheckDetails> purchaseCheckDetailsList, Long taskId) {
|
||||
if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) {
|
||||
for (PurchaseCheckDetails details : purchaseCheckDetailsList) {
|
||||
details.setTaskId(taskId);
|
||||
details.setInputStatus("0");
|
||||
List<BmFileInfo> bmFileInfos = details.getBmFileInfos();
|
||||
if (!CollectionUtils.isEmpty(bmFileInfos)) {
|
||||
bmFileInfos.stream().forEach(o -> o.setTaskId(taskId));
|
||||
bmFileInfoMapper.insertBmFileInfos(bmFileInfos);
|
||||
}
|
||||
}
|
||||
// 批量插入详情数据
|
||||
int count = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckDetailsList);
|
||||
if (count > 0) {
|
||||
return AjaxResult.success("新增任务成功");
|
||||
} else {
|
||||
return AjaxResult.error("新增任务失败,purchase_check_detail详情表插入0条");
|
||||
}
|
||||
} else {
|
||||
return AjaxResult.success("新增任务成功");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验收通过
|
||||
*
|
||||
|
|
@ -309,14 +294,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
||||
try {
|
||||
List<PurchaseCheckDetails> purchaseCheckDetailsList = purchaseCheckDto.getPurchaseCheckDetailsList();
|
||||
for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) {
|
||||
purchaseCheckDetailsMapper.updatePurchaseCheckDetails(purchaseCheckDetails);
|
||||
}
|
||||
Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()};
|
||||
deletePurchaseCheckInfoByIds(ids);
|
||||
insertPurchaseCheckDetails(purchaseCheckDto.getPurchaseCheckDetailsList(), purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
|
||||
purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue