申请物料及BUG修复

This commit is contained in:
大米 2023-12-06 17:25:37 +08:00
parent 33db073a57
commit b821b9e2cb
5 changed files with 33 additions and 8 deletions

View File

@ -19,6 +19,8 @@ import io.swagger.annotations.ApiOperation;
import nflg.product.common.constant.STATE;
import nflg.product.common.vo.ResultVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronizationAdapter;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.ttzero.excel.entity.ListMapSheet;
@ -135,8 +137,13 @@ public class OriginalBomApi extends BaseApi {
return ResultVO.error("请上传Excel文件");
}
originalParentService.importBom(file);
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
originalParentService.computeLevelNumAndRootState();
}
});
originalParentService.computeLevelNumAndRootState();
return ResultVO.success(true);
}

View File

@ -2,6 +2,9 @@ package com.nflg.product.bomnew.mapper.master;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* t_bom_new_original_child 表数据库访问层
@ -11,4 +14,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity;
* @since 2023-11-09 09:25:02
*/
public interface BomNewOriginalChildMapper extends BaseMapper<BomNewOriginalChildEntity> {
void delOriginalChildNotInRowIds(@Param("rowIds")List<Long> rowIds);
}

View File

@ -41,6 +41,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
@ -106,8 +107,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
if (CollUtil.isNotEmpty(childEntities)) {
//删除行
List<Long> delRowIds = bom.getBomList().stream().filter(u -> u.getDelIs().equals(1)).map(u -> u.getRowId()).collect(Collectors.toList());
originalChildService.getBaseMapper().deleteBatchIds(delRowIds);
List<Long> delRowIds = bom.getBomList().stream().map(u->u.getRowId()).collect(Collectors.toList());
originalChildService.getBaseMapper().delOriginalChildNotInRowIds(delRowIds);
originalChildService.saveOrUpdateBatch(childEntities);
}
return true;
@ -164,7 +165,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
child.setStatus(OriginalStatusEnum.BORROWED_PARTS.getValue());
}
//非本人则为借用件
if (parentEntity.getCreatedBy().equals(SessionUtil.getUserCode()) && OriginalStatusEnum.UN_CONVERT.equalsValue(parentEntity.getStatus())) {
if (!parentEntity.getCreatedBy().equals(child.getCreatedBy()) && OriginalStatusEnum.UN_CONVERT.equalsValue(parentEntity.getStatus())) {
child.setStatus(OriginalStatusEnum.REFERENCE.getValue());
}
} else { //无BOM-版本时 确定版本号
@ -206,6 +207,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
*/
private List<BomOriginalListVO> getBomTree(Long rowId) throws ExecutionException, InterruptedException {
List<BomOriginalListVO> bomDetail = this.getBaseMapper().getParentChild(rowId);
BomNewOriginalParentEntity parentEntity = this.getBaseMapper().selectById(rowId);
OriginalBomDetailTask detailTask = new OriginalBomDetailTask(bomDetail);
ForkJoinTask<List<BomOriginalListVO>> submit = bomDetailPool.submit(detailTask);
@ -301,9 +303,12 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
VUtils.isTure(Objects.isNull(parentEntity)).throwMessage("该节点不存在,请检查参数是否正确");
VUtils.isTure(!parentEntity.getCreatedBy().equals(SessionUtil.getUserCode())).throwMessage("该节点不属于你,你无权删除");
List<BomOriginalListVO> bomTree = getBomTree(bomRowId);
List<Long> delParentRowId = bomTree.stream().filter(u ->OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus()) ).map(u -> u.getParentRowId()).collect(Collectors.toList());
//需删除的BOM
List<BomOriginalListVO> delBom = bomTree.stream().filter(u -> u.getBomRowId() > 0 && OriginalStatusEnum.UN_CONVERT.equalsValue(u.getStatus())).collect(Collectors.toList());
List<Long> delParentRowId=new ArrayList<>();
for ( BomOriginalListVO bom: delBom) {
delParentRowId.add(bom.getBomRowId());
}
delParentRowId.add(bomRowId);
if (CollUtil.isNotEmpty(delParentRowId)) {
this.getBaseMapper().delBatch(delParentRowId);

View File

@ -65,7 +65,7 @@ public class OriginalBomDetailTask extends RecursiveTask<List<BomOriginalListVO>
detailVO.setStatus(OriginalStatusEnum.BORROWED_PARTS.getValue());
}
//非本人则为借用件
if (bomNewOriginalParentEntity.getCreatedBy().equals(SessionUtil.getUserCode()) && OriginalStatusEnum.UN_CONVERT.equalsValue(bomNewOriginalParentEntity.getStatus())) {
if (!bomNewOriginalParentEntity.getCreatedBy().equals(detailVO.getCreatedBy()) && OriginalStatusEnum.UN_CONVERT.equalsValue(bomNewOriginalParentEntity.getStatus())) {
detailVO.setStatus(OriginalStatusEnum.REFERENCE.getValue());
}

View File

@ -26,4 +26,11 @@
row_id, parent_row_id, order_number, drawing_no, material_no, material_name, material_desc, unit_weight, num, total_weight ,remark,created_by,created_time ,edit_status </sql>
<delete id="delOriginalChildNotInRowIds">
delete from t_bom_new_original_child where row_id not in
<foreach collection="rowIds" item="rowId" open="(" separator="," close=")">
#{rowId}
</foreach>
</delete>
</mapper>