jinlin
2024-10-08 9ce83b15edf91ba1eae10cea0b3936ac630925e4
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java
@@ -6,15 +6,21 @@
import com.zt.common.annotation.QueryParam;
import com.zt.common.db.query.QueryFilter;
import com.zt.common.servlet.Result;
import com.zt.common.utils.UUIDUtil;
import com.zt.common.validator.AssertUtils;
import com.zt.common.validator.ValidatorUtils;
import com.zt.common.validator.group.AddGroup;
import com.zt.common.validator.group.DefaultGroup;
import com.zt.common.validator.group.UpdateGroup;
import com.zt.life.core.service.ZtProductService;
import com.zt.life.dto.ImportErrDto;
import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
import com.zt.life.modules.mainPart.basicInfo.model.ProductImg;
import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
import com.zt.life.modules.mainPart.basicInfo.service.ParamDataService;
import com.zt.life.modules.mainPart.basicInfo.service.XhProductModelService;
import com.zt.life.modules.mainPart.sysPictureBase.service.SysPictureBaseService;
import com.zt.life.util.ImportUtil;
import com.zt.modules.oss.service.SysOssService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -22,9 +28,12 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
@@ -40,11 +49,11 @@
    @Autowired
    private XhProductModelService xhProductModelService;
    @Autowired
    private SysOssService sysOssService;
    @Autowired
    private SysPictureBaseService sysPictureBaseService;
    @Autowired
    private ParamDataService paramDataService;
    @GetMapping("page")
    @ApiOperation("分页")
@@ -60,17 +69,15 @@
    }
    @GetMapping("tree")
    public Result<List<XhProductModel>> getTreeList(Boolean showXdy) {
        List<XhProductModel> list = xhProductModelService.getAllTree(showXdy);
    public Result<List<XhProductModel>> getTreeList(Boolean showXdy, Integer ztShow, Long productId) {
        List<XhProductModel> list = xhProductModelService.getAllTree(showXdy, ztShow, productId);
        return Result.ok(list);
    }
    @GetMapping("getProduct")
    public Result<List<ProductImg>> getProduct(Long productId) {
        List<ProductImg> list = xhProductModelService.getProduct(productId);
        return Result.ok(list);
    }
@@ -96,6 +103,33 @@
        return Result.ok(list);
    }
    @PostMapping("importProductExcel")
    @ApiOperation("导入产品模型")
    @LogOperation("导入产品模型")
    public Result importProductExcel(MultipartFile file, String progressId, Long pid) {
        Result<List<ImportErrDto>> result = Result.ok();
        try {
            List<Map<String, Object>> importResults = xhProductModelService.importProductExcel(file, progressId, pid);
            StringBuilder str = new StringBuilder();
            ImportUtil.importResult(result, importResults, str);
            ImportUtil.ImportErrResult(result, importResults, str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    @GetMapping("exportData")
    @ApiOperation("导出产品模型")
    @LogOperation("导出产品模型")
    public Result exportDataExcel(Long shipId) {
        xhProductModelService.exportDataExcel(shipId);
        return null;
    }
    @PostMapping
    @ApiOperation("新增")
    @LogOperation("新增")
@@ -103,10 +137,22 @@
        //效验数据
        ValidatorUtils.validateEntity(xhProductModel, AddGroup.class, DefaultGroup.class);
        Integer no = xhProductModelService.getNo(xhProductModel.getPid(),xhProductModel.getProductType());
        if (xhProductModel.getSort() < no) {
        Integer no = xhProductModelService.getNo(xhProductModel.getPid(), xhProductModel.getProductType());
        if (xhProductModel.getSort() == null || xhProductModel.getSort() < no) {
            xhProductModel.setSort(no + 1);
        }
        if (xhProductModel.getProductType().equals("2")) {
            Long id = UUIDUtil.generateId();
            xhProductModel.setId(id);
            xhProductModel.setShipId(id);
            ParamData data = new ParamData();
            data.setShipId(id);
            data.setProductId(id);
            paramDataService.insert(data);
        }
        xhProductModelService.insert(xhProductModel);
        return Result.ok();
@@ -119,6 +165,11 @@
            xhProductModel.setId(null);
            xhProductModel.setSort(xhProductModel.getSort());
            xhProductModel.setProductType(xhProductModel.getNodeType());
            if (xhProductModel.getNamePath() == null) {
                xhProductModel.setNamePath(xhProductModel.getName());
            } else {
                xhProductModel.setNamePath(xhProductModel.getNamePath() + "," + xhProductModel.getName());
            }
            this.insert(xhProductModel);
        }
        return Result.ok();
@@ -141,9 +192,25 @@
    public Result delete(@RequestBody Long[] ids) {
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        xhProductModelService.delete(ids);
        this.deleteByProduct(ids);
        return Result.ok();
    }
    private void deleteByProduct(Long[] ids) {
        for (Long id : ids) {
            XhProductModel data = xhProductModelService.get(id);
            if (data.getProductType().equals("1") || data.getProductType().equals("3") || data.getProductType().equals("4")) {
                xhProductModelService.deleteLogic(id);
              /*  List<Long> list =xhProductModelService.getByPid(id);
                Long[] L = list.stream().toArray(Long[]::new);*/
                Long[] list = xhProductModelService.getByPid(id);
                this.deleteByProduct(list);
            } else if (data.getProductType().equals("2")) {
                xhProductModelService.deleteByShipId(data.getShipId());
            } else if (data.getProductType().equals("5")) {
                xhProductModelService.deleteLogic(id);
            }
        }
    }
}