新购接口优化
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.domain.PurchaseCheckInfo;
|
||||||
import com.bonus.material.purchase.service.IPurchaseCheckInfoService;
|
import com.bonus.material.purchase.service.IPurchaseCheckInfoService;
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
import org.springframework.transaction.PlatformTransactionManager;
|
||||||
import org.springframework.transaction.TransactionStatus;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
@ -165,12 +163,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
|
public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) {
|
||||||
// 赋值创建时间
|
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate());
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername());
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
|
||||||
try {
|
try {
|
||||||
// 查询新购任务当月最大单号
|
// 查询新购任务当月最大单号
|
||||||
Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId()));
|
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);
|
thisMonthMaxOrder = Optional.ofNullable(thisMonthMaxOrder).orElse(0);
|
||||||
// 生成单号
|
// 生成单号
|
||||||
TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder);
|
TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder);
|
||||||
Long taskId;
|
tmTaskMapper.insertTmTask(tmTask);
|
||||||
|
Long taskId = tmTask.getTaskId();
|
||||||
// 开启事务
|
|
||||||
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表中插入数据
|
|
||||||
purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId);
|
purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId);
|
||||||
if (purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo()) > 0) {
|
int count = purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo());
|
||||||
purchaseCheckInfo.getPurchaseCheckDetailsList().forEach(
|
if (count > 0) {
|
||||||
details -> {
|
return insertPurchaseCheckDetails(purchaseCheckInfo.getPurchaseCheckDetailsList(), taskId);
|
||||||
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 {
|
} else {
|
||||||
transactionManager.rollback(transactionStatus);
|
return AjaxResult.error("新增任务失败,purchase_check_info表插入0条");
|
||||||
return AjaxResult.error("新增任务失败,详情表插入0条");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
transactionManager.rollback(transactionStatus);
|
|
||||||
return AjaxResult.error("新增任务失败,info表插入0条");
|
|
||||||
}
|
}
|
||||||
} catch (DataAccessException e) {
|
} catch (DataAccessException e) {
|
||||||
return AjaxResult.error("数据库操作失败:" + e.getMessage());
|
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 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) {
|
||||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate());
|
||||||
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername());
|
||||||
try {
|
try {
|
||||||
List<PurchaseCheckDetails> purchaseCheckDetailsList = purchaseCheckDto.getPurchaseCheckDetailsList();
|
Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()};
|
||||||
for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) {
|
deletePurchaseCheckInfoByIds(ids);
|
||||||
purchaseCheckDetailsMapper.updatePurchaseCheckDetails(purchaseCheckDetails);
|
insertPurchaseCheckDetails(purchaseCheckDto.getPurchaseCheckDetailsList(), purchaseCheckDto.getPurchaseCheckInfo().getTaskId());
|
||||||
}
|
|
||||||
purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo());
|
purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo());
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue