whycxzp
2022-08-15 6eda8b2ff2b6748376670e84a14a8656cc1094c6
src/main/java/com/whyc/service/WorksheetLinkService.java
@@ -43,12 +43,22 @@
    @Autowired
    private ComponentProductApprovingService cpAService;
    @Autowired
    private ComponentApprovingService cAService;
    @Autowired
    private ComponentService cService;
    @Transactional
    public void audit(WorksheetLink link) {
        link.setDealTime(new Date());
        //更新节点信息
        linkMapper.updateById(link);
        if(link.getLinkStatus() == 2){ //驳回
            //查看是否为散装件审批,是则需要更新散装件审批表中的状态为完结
            if(mainService.getInfoById(link.getMainId()).getType().equals(EnumWorksheetType.Component.getType())){
                cAService.endStatus(link.getMainId());
            }
            //项目经理驳回,驳回即终止
            mainService.updateEndStatusById(link.getMainId(),"经理驳回,驳回原因:"+link.getDealReason(),0);
            //项目经理驳回前,还曾经过总经理,则需要增加总经理驳回原因
@@ -233,8 +243,34 @@
                //更新正式bom的对应url
                bomService.updateUrl(fileBomApprovingList);
            }
            else if(type.intValue() == EnumWorksheetType.Component.getType()){ //散装件 TODO
            else if(type.intValue() == EnumWorksheetType.Component.getType()){ //散装件
                List<ComponentApproving> approvingList = cAService.getListByMainId(link.getMainId());
                List<Component> componentList = new LinkedList<>();
                //区分是新增还是删除
                Integer componentId = approvingList.get(0).getComponentId();
                if(componentId==null) { //新增
                    //将散装件从审批表中转移到正式表
                    approvingList.forEach(approve -> {
                        Component component = new Component();
                        component.setCategory(approve.getCategory());
                        component.setSubCode(approve.getSubCode());
                        component.setSubName(approve.getSubName());
                        component.setSubModel(approve.getSubModel());
                        component.setUnit(approve.getUnit());
                        component.setQuantity(approve.getQuantity());
                        component.setProducer(approve.getProducer());
                        component.setNotes(approve.getNotes());
                        component.setCreateDate(new Date());
                        component.setStatus(1);
                        componentList.add(component);
                    });
                    cService.insertBatch(componentList);
                }else{ //删除
                    List<Integer> componentIdList = approvingList.stream().map(ComponentApproving::getComponentId).collect(Collectors.toList());
                    cService.deleteBatch(componentIdList);
                }
                //更新散装件审批子表中type为完结
                cAService.endStatus(link.getMainId());
            }
            else if(type.intValue() == EnumWorksheetType.ComponentProduct.getType()){ //更新散装件-产品关系
                //查找到对应的散装件-产品关系数据
@@ -326,6 +362,7 @@
                        newHistory.setComponentId(replace.getComponentId());
                        newHistory.setParentModel(replace.getParentModel());
                        newHistory.setSubName(replace.getSubName());
                        newHistory.setQuantity(replace.getQuantity());
                        newHistory.setCreateTime(new Date());
                        newHistory.setLinkType(2);
                        newHistory.setSVersion(nextVersion);
@@ -371,6 +408,7 @@
                    newHistory.setComponentId(add.getComponentId());
                    newHistory.setParentModel(add.getParentModel());
                    newHistory.setSubName(add.getSubName());
                    newHistory.setQuantity(add.getQuantity());
                    newHistory.setCreateTime(new Date());
                    newHistory.setLinkType(1);
                    newHistory.setSVersion(nextVersion);