package com.gk.firework.Controller; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.gk.firework.Controller.Base.BaseController; import com.gk.firework.Domain.*; import com.gk.firework.Domain.Enum.Element; import com.gk.firework.Domain.Enum.EnterpriseSafetySupervision; import com.gk.firework.Domain.Enum.ErrorCode; import com.gk.firework.Domain.Utils.*; import com.gk.firework.Domain.Vo.DirectionDetail; import com.gk.firework.Domain.Vo.FireworkDeal; import com.gk.firework.Domain.Vo.ProductThresholdVo; import com.gk.firework.Domain.Vo.ProductVo; import com.gk.firework.Service.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; /** * @author jingjy */ @Api(tags = "产品信息接口") @RequestMapping("/product") @RestController public class ProductController extends BaseController { @Value("${productPath}") private String productPath; //配置文件配置的物理保存地址 private ProductService productService; private StockService stockService; private UserService userService; private EnterpriseService enterpriseService; private ProductThresholdService productThresholdService; private ProductCategoryService productCategoryService; private ProductPriceService productPriceService; private ExcelExportService excelExportService; private static final Byte ADD_OPTION = 1; private static final Byte EDIT_OPTION = 2; private static final Byte DEL_OPTION = 3; @Autowired public ProductController(ProductService productService,StockService stockService, UserService userService, EnterpriseService enterpriseService,ProductThresholdService productThresholdService, ProductCategoryService productCategoryService,ProductPriceService productPriceService, ExcelExportService excelExportService ) { this.productService = productService; this.stockService = stockService; this.userService = userService; this.enterpriseService = enterpriseService; this.productThresholdService = productThresholdService; this.productCategoryService = productCategoryService; this.productPriceService = productPriceService; this.excelExportService = excelExportService; } /** * 查询全部的产品信息 * * @param name 产品名; * @param directionCode :流向码(十位); * @param manufacturer :生产厂家 * @return List 产品信息的集合 */ @GetMapping("/info") public Msg getProductInfo(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "directionCode", required = false) String directionCode, @RequestParam(value = "manufacturer", required = false) String manufacturer, @RequestParam(value = "type", required = false) String type, @RequestParam(value = "secondaryType", required = false) String secondaryType, @RequestParam(value = "isOld", required = false) String isOld, @RequestParam(defaultValue = "0") Integer pageIndex, @RequestParam(defaultValue = "10") Integer pageSize, String sort, String order) { Msg msg = new Msg(true); PageInfo pageInfo = new PageInfo(pageIndex, pageSize,sort,order); Map condition = new HashMap<>(4); if (StringUtils.isNotBlank(name)) { condition.put("name", name); } if (StringUtils.isNotBlank(directionCode)) { condition.put("directionCode", directionCode); } if (StringUtils.isNotBlank(manufacturer)) { condition.put("manufacturer", manufacturer); } if (StringUtils.isNotBlank(type)) { condition.put("type", type); } if (StringUtils.isNotBlank(secondaryType)) { condition.put("secondaryType", secondaryType); } if (StringUtils.isNotBlank(isOld)) { condition.put("isOld", isOld); } UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); if (enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ condition.put("manufacturer", enterprise.getEnterprisename()); }else { condition.put("companynumber", enterprise.getEnterprisenumber()); } } pageInfo.setCondition(condition); productService.selectDataGrid(pageInfo); msg.setResult(pageInfo); return msg; } /** * 查询全部的产品信息编码 * * @return List 产品编码的集合 */ @GetMapping("/codes") public Msg getProductCodes(){ Listlist = productService.getAllProductCodes(); return success(list); } /** * 查询全部的产品信息 * * @param name 产品名; * @param directionCode :流向码(十位); * @param manufacturer :生产厂家 * @return List 产品信息的集合 */ @GetMapping("/exportInfo") public Msg exportProduct(@RequestParam(value = "name", required = false) String name, @RequestParam(value = "directionCode", required = false) String directionCode, @RequestParam(value = "manufacturer", required = false) String manufacturer, @RequestParam(value = "type", required = false) String type, @RequestParam(value = "secondaryType", required = false) String secondaryType) { Msg msg = new Msg(true); Map condition = new HashMap<>(4); if (StringUtils.isNotBlank(name)) { condition.put("name", name); } if (StringUtils.isNotBlank(directionCode)) { condition.put("directionCode", directionCode); } if (StringUtils.isNotBlank(manufacturer)) { condition.put("manufacturer", manufacturer); } if (StringUtils.isNotBlank(type)) { condition.put("type", type); } if (StringUtils.isNotBlank(secondaryType)) { condition.put("secondaryType", secondaryType); } UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); if (enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ condition.put("manufacturer", enterprise.getEnterprisename()); }else { condition.put("companynumber", enterprise.getEnterprisenumber()); } } List productInfos = productService.selectProductInfo(condition); msg.setResult(productInfos); return msg; } @PostMapping("/updatePrice") public Msg updatePrice( @RequestBody ProductInfo productInfo) { Msg msg = new Msg(true); if (productInfo == null || StringUtils.isBlank(productInfo.getDirectionCode()) || productInfo.getDirectionCode().length() < FireworkDeal.DIRECTION_ITEM){ msg.setCode("999"); msg.setMessage("流向码异常,修改失败"); return msg; } ProductInfo productInfoExist = productService.selectByDirection(productInfo.getDirectionCode()); if (productInfoExist == null) { msg.setCode("999"); msg.setMessage("产品信息流向码不存在,修改失败!"); return msg; } String companynumber = ""; UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); if (!enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ companynumber = enterprise.getEnterprisenumber(); } } if (StringUtils.isBlank(companynumber)){ msg.setCode("999"); msg.setMessage("非经营企业无法修改价格!"); return msg; } ProductPriceInfo productPriceInfo = productPriceService.selectByCode(companynumber,productInfo.getDirectionCode()); if (productPriceInfo != null){ productPriceInfo.setPrice(productInfo.getSalePrice()); productPriceInfo.setUpdated(new Date()); productPriceInfo.setUpdator(userInfo.getUsername()); productPriceService.updateById(productPriceInfo); }else { ProductPriceInfo productPrice = new ProductPriceInfo(); productPrice.setCompanynumber(companynumber); productPrice.setItemcode(productInfo.getDirectionCode()); productPrice.setPrice(productInfo.getSalePrice()); productPrice.setUpdated(new Date()); productPrice.setUpdator(userInfo.getUsername()); productPriceService.save(productPrice); } return msg; } @PostMapping("/importEditPrice") @ApiOperation(value = "导入修改价格",response = Msg.class) @ApiImplicitParams({ @ApiImplicitParam(name = "file",value = "文件",required = true), }) public Msg addSelfCheckList(MultipartFile file){ Msg msg = new Msg(); msg.setCode("200"); msg.setMessage("success"); String filesave =""; try { SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddHHmmssSSS" ); if (file == null) { msg.setCode("404"); msg.setMessage("未找到上传文件"); return msg; } long size = file.getSize(); if(0 == size) { msg.setCode("404"); msg.setMessage("上传文件大小为空"); return msg; } if(!FileOptUtils.isDirExists(productPath)){ msg.setCode("500"); msg.setMessage("发生错误或不为目录"); return msg; } String companynumber = ""; UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); if (!enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ companynumber = enterprise.getEnterprisenumber(); } } if (StringUtils.isBlank(companynumber)){ msg.setCode("999"); msg.setMessage("非经营企业无法修改价格!"); return msg; } filesave = productPath + getUser().getUsername() + "_" + sdf.format(new Date()) +".xlsx"; file.transferTo(new File(filesave)); InputStream in = new FileInputStream(filesave); String name = file.getOriginalFilename(); Boolean isExcel2007 = name.substring(name.lastIndexOf(".") + 1).endsWith("xlsx")? true:false; BooleanReason blret = excelExportService.imporEditPriceExcel(in,companynumber,getUser().getUsername(),isExcel2007); if(blret.getValue().equals(false)) { msg.setCode("500"); msg.setMessage(blret.getResultmsg()); return msg; } } catch (Exception e) { e.printStackTrace(); msg.setCode("500"); msg.setMessage("导入发生错误"); return msg; } return msg; } @PostMapping("/add") public Msg addProduct(@Validated @RequestBody ProductInfo productInfo, BindingResult bindingResult) { if (bindingResult.hasErrors()) { StringBuilder stringBuilder = new StringBuilder(); for (String s : bindingResult.getFieldErrors().stream() .map(FieldError::getDefaultMessage).collect(Collectors.toList())) { stringBuilder.append(s).append(","); } return new Msg(ErrorCode.ERROR_10002,stringBuilder.toString()); } if (StringUtils.isBlank(productInfo.getDirectionCode()) || productInfo.getDirectionCode().length() != 10){ return new Msg(ErrorCode.ERROR_10004,"流向码格式错误,新增失败!"); } List productInfosExist = productService.selectByProduct(productInfo); if (productInfosExist != null && productInfosExist.size() != 0) { return new Msg(ErrorCode.ERROR_50003,"新增产品信息流向码已存在,无法添加!"); } Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(productInfo.getManufacturer()); if (enterprise == null || !enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ return new Msg(ErrorCode.ERROR_50002,"企业信息不存在 或 该企业不为生产企业!"); } Byte isOld = 1; productInfo.setCompanyNumber(enterprise.getEnterprisenumber()); productInfo.setManufacturer(enterprise.getEnterprisename()); productInfo.setCreatedDate(new Date()); productInfo.setCreatedBy(getUser().getUsername()); productInfo.setIsOld(isOld); Msg thresholdMsg = isFitThreshold(productInfo); if (!thresholdMsg.getCode().equals(ErrorCode.SUCCESS.getCode())){ return thresholdMsg; } boolean i = productService.save(productInfo); if (!i) { return new Msg(ErrorCode.ERROR_40001,"新增失败,请重新新增!"); } return success(); } @PostMapping("/addNew") public Msg addNewProduct(@Validated @RequestBody ProductInfo productInfo, BindingResult bindingResult) { Msg msg = new Msg(true); if (bindingResult.hasErrors()) { StringBuilder stringBuilder = new StringBuilder(); for (String s : bindingResult.getFieldErrors().stream() .map(FieldError::getDefaultMessage).collect(Collectors.toList())) { stringBuilder.append(s); stringBuilder.append(","); } msg.setCode("999"); msg.setMessage(stringBuilder.toString()); return msg; } Enterprise enterprise = enterpriseService.selectEnterpriseByNumber(productInfo.getManufacturer()); if (enterprise == null || !enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ msg.setCode("999"); msg.setMessage("企业信息不存在 或 该企业不为生产企业!"); return msg; } //生成十位流向码 String itemCode = ""; ProductCategory productCategory = productCategoryService.selectCategoryByLevelAndName(productInfo.getLevel(), productInfo.getSecondaryType()); if (productCategory == null || StringUtils.isBlank(productCategory.getBitcode())){ msg.setCode("999"); msg.setMessage("产品类别错误,新增失败!"); return msg; } int explosiveContent = productInfo.getExplosiveContent().setScale(0,BigDecimal.ROUND_UP).intValue(); String explosive = "FFF"; if (explosiveContent <= 4095){ explosive = String.format("%03x",explosiveContent); } String randomStr = Element.random(Element.class).getValue().toString()+Element.random(Element.class).getValue().toString() +Element.random(Element.class).getValue().toString()+Element.random(Element.class).getValue().toString(); if (StringUtils.isBlank(enterprise.getTwobitcode())){ msg.setCode("999"); msg.setMessage("两位企业编码为空,请联系管理员添加!"); return msg; } itemCode = productCategory.getBitcode() + explosive + enterprise.getTwobitcode() + randomStr; productInfo.setDirectionCode(itemCode.toUpperCase()); List productInfosExist = productService.selectByProduct(productInfo); if (productInfosExist != null && productInfosExist.size() != 0) { msg.setCode("999"); msg.setMessage("新增产品信息流向码已存在,无法添加!"); return msg; } BigDecimal totalExplosive = new BigDecimal(productInfo.getSpecification()). multiply(productInfo.getExplosiveContent()); Msg thresholdMsg = isFitThreshold(productInfo); if (!thresholdMsg.getCode().equals(ErrorCode.SUCCESS.getCode())){ return thresholdMsg; } productInfo.setExplosiveContent(totalExplosive); productInfo.setCompanyNumber(enterprise.getEnterprisenumber()); productInfo.setManufacturer(enterprise.getEnterprisename()); productInfo.setCreatedDate(new Date()); productInfo.setCreatedBy(getUser().getUsername()); boolean i = productService.save(productInfo); if (!i) { msg.setCode("999"); msg.setMessage("新增失败,请重新新增!"); return msg; } return msg; } @PostMapping("/update") public Msg updateProduct( @RequestBody ProductInfo productInfo) { Msg msg = new Msg(true); if (productInfo == null || StringUtils.isBlank(productInfo.getDirectionCode()) || productInfo.getDirectionCode().length() < FireworkDeal.DIRECTION_ITEM){ msg.setCode("999"); msg.setMessage("流向码异常,删除失败"); return msg; } ProductInfo productInfoExist = productService.selectByDirection(productInfo.getDirectionCode()); if (productInfoExist == null) { msg.setCode("999"); msg.setMessage("产品信息流向码不存在,修改失败!"); return msg; } ProductInfo productInfoNew = new ProductInfo(); productInfoNew.setId(productInfoExist.getId()); productInfoNew.setPurchasePrice(productInfo.getPurchasePrice()); productInfoNew.setSalePrice(productInfo.getSalePrice()); productInfoNew.setModifiedDate(new Date()); productInfoNew.setModifiedBy(getUser().getUsername()); boolean i = productService.updateById(productInfoNew); if (!i) { msg.setCode("999"); msg.setMessage("修改失败,请重新修改!"); return msg; } return msg; } @PostMapping("/delete") public Msg deleteProduct(@RequestBody ProductInfo productInfo) { if (productInfo == null || StringUtils.isBlank(productInfo.getDirectionCode()) || productInfo.getDirectionCode().length() < FireworkDeal.DIRECTION_ITEM){ return new Msg(ErrorCode.ERROR_10004,"流向码异常,删除失败"); } ProductInfo productInfoExist = productService.selectByDirection(productInfo.getDirectionCode()); if (productInfoExist == null) { return new Msg(ErrorCode.ERROR_50001,"产品信息流向码不存在,删除失败"); } boolean flag = productService.isProductUsed(productInfoExist.getId()); if (flag){ return new Msg(ErrorCode.ERROR_999,"当前产品已经签订合同或已经入库,无法删除"); } ProductInfo productInfoNew = new ProductInfo(); productInfoNew.setId(productInfoExist.getId()); productInfoNew.setModifiedDate(new Date()); productInfoNew.setModifiedBy(getUser().getUsername()); productInfoNew.setIsDel((byte) 1); boolean i = productService.updateById(productInfoNew); if (!i) { return new Msg(ErrorCode.ERROR_40001,"删除失败,请重新删除"); } return success(); } @GetMapping("/get") public Msg getProductByCode(@RequestParam(value = "directionCode") String directionCode) { Msg msg = new Msg(true); if (StringUtils.isBlank(directionCode)) { msg.setCode("999"); msg.setMessage("流向码为空,无法查询相关信息!"); return msg; } DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); if (directionDetail == null) { msg.setCode("999"); msg.setMessage("流向码不符合规则,请重新输入!"); return msg; } ProductInfo productInfo = new ProductInfo(); productInfo.setDirectionCode(directionDetail.getItemCode()); UserInfo userInfo = userService.getById(getUser().getId()); if (userInfo.getCompanyid() != null){ Enterprise enterprise = enterpriseService.getById(userInfo.getCompanyid()); if (!enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE.getMsg())){ productInfo.setCompanyNumber(enterprise.getEnterprisenumber()); } } List productInfos = productService.selectByProduct(productInfo); if (productInfos == null || productInfos.size() == 0) { msg.setCode("999"); msg.setMessage("未找到相应的产品信息!"); return msg; } if (productInfos.size() > 1) { msg.setCode("999"); msg.setMessage("错误:存在多个对应的产品信息!"); return msg; } ProductVo productVo = BeanUtils.copy(productInfos.get(0), ProductVo.class); productVo.setDirectionCode(directionCode); productVo.setItemCode(directionDetail.getItemCode()); productVo.setDateCode(directionDetail.getDateCode()); productVo.setSerialNo(directionDetail.getSerialNo()); List productVos = new ArrayList<>(); if (directionDetail.getBoxNo() != null) { productVo.setBoxNo(directionDetail.getBoxNo()); FireworkDeal.getProductVos(directionCode, directionDetail, directionDetail, productVos, productVo); } else { productVos.add(productVo); } msg.setResult(productVos); return msg; } @GetMapping("/gets") public Msg getProductsByCodes(@RequestParam String directionCode,@RequestParam String endCode){ Msg msg = new Msg(true); if (StringUtils.isBlank(directionCode)|| StringUtils.isBlank(endCode)) { msg.setCode("999"); msg.setMessage("流向码为空,无法查询相关信息!"); return msg; } if (directionCode.length()!= 19 || endCode.length() != 5) { msg.setCode("999"); msg.setMessage("流向码不符合规则,请重新输入!"); return msg; } /*DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); DirectionDetail directionDetail2 = FireworkDeal.dealDirectionCode(directionCode.substring(0,14)+endCode);*/ ListproductVos = new ArrayList<>(); ProductVo productVo = productService.selectVoByDirection(directionCode); try { Integer first = Integer.parseInt(directionCode.substring(14,19)); Integer last = Integer.parseInt(endCode); if (first > last){ Integer temp = first; first = last; last = temp; } for (int i = first; i <= last; i++){ ProductVo productVoCopy = BeanUtils.copy(productVo, ProductVo.class); productVoCopy.setDirectionCode(directionCode.substring(0, 14) + String.format("%05d", i)); productVos.add(productVoCopy); } }catch (Exception e){ msg.setCode("999"); msg.setMessage("流向码不符合规则,请重新输入!"); return msg; } return success(productVos); } @GetMapping("/getSingle") public Msg getSingleProductByCode(@RequestParam(value = "directionCode") String directionCode) { Msg msg = new Msg(true); if (StringUtils.isBlank(directionCode)) { msg.setCode("999"); msg.setMessage("流向码为空,无法查询相关信息!"); return msg; } DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); if (directionDetail == null) { msg.setCode("999"); msg.setMessage("流向码不符合规则,请重新输入!"); return msg; } ProductInfo productInfo = new ProductInfo(); productInfo.setDirectionCode(directionDetail.getItemCode()); List productInfos = productService.selectByProduct(productInfo); if (productInfos == null || productInfos.size() == 0) { msg.setCode("999"); msg.setMessage("未找到相应的产品信息!"); return msg; } if (productInfos.size() > 1) { msg.setCode("999"); msg.setMessage("错误:存在多个对应的产品信息!"); return msg; } ProductVo productVo = BeanUtils.copy(productInfos.get(0), ProductVo.class); productVo.setDirectionCode(directionCode); productVo.setItemCode(directionDetail.getItemCode()); productVo.setDateCode(directionDetail.getDateCode()); productVo.setSerialNo(directionDetail.getSerialNo()); msg.setResult(productVo); return msg; } @PostMapping("/explain") public Msg getProductListByCodes(@RequestBody JSONObject object) { Msg msg = new Msg(true); JSONArray jsonArray = object.getJSONArray("data"); String userName = object.getString("userName"); ListproductVos = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { // 遍历 jsonArray 数组,把每一个对象转成 json 对象 JSONObject jsonObject = jsonArray.getJSONObject(i); String directionCode = jsonObject.getString("directionCode"); DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); if (FireworkDeal.is22Characters(directionCode)){ ProductVo productVo = productService.selectVoByDirection(directionCode); FireworkDeal.getProductVos(directionCode, directionDetail, directionDetail, productVos,productVo); }else if (FireworkDeal.is19Characters(directionCode)){ ProductVo productVo = productService.selectVoByDirection(directionCode); productVos.add(productVo); } } UserInfo userInfo = userService.selectByUser(userName); if (userInfo == null){ msg.setCode("999"); msg.setMessage("未找到用户信息!"); return msg; } //移除重复元素 List productVoList = ProductVo.removeListDuplicateObject(productVos); stockService.setProductEntryStatus(productVoList,userInfo); msg.setResult(productVoList); return msg; } @PostMapping("/removeDuplicate") public Msg removeDuplicateListElement(@RequestBody JSONArray array) { Msg msg = new Msg(true); ListproductVos = new ArrayList<>(); for (int i = 0; i < array.size(); i++) { // 遍历 jsonArray 数组,把每一个对象转成 json 对象 JSONObject jsonObject = array.getJSONObject(i); String directionCode = jsonObject.getString("directionCode"); DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); if (FireworkDeal.is22Characters(directionCode)){ ProductVo productVo = productService.selectVoByDirection(directionCode); FireworkDeal.getProductVos(directionCode, directionDetail, directionDetail, productVos,productVo); }else if (FireworkDeal.is19Characters(directionCode)){ ProductVo productVo = productService.selectVoByDirection(directionCode); productVos.add(productVo); } } //移除重复元素 List productVoList = ProductVo.removeListDuplicateObject(productVos); msg.setResult(productVoList); return msg; } @GetMapping(value = "getThreshold") public Msg getProductThreshold(){ Msg msg = new Msg(true); ProductThresholdInfo productThresholdInfo = productThresholdService.getOne(new LambdaQueryWrapper<>()); if (productThresholdInfo == null){ msg.setCode(ErrorCode.ERROR_999.getCode()); msg.setMessage("未找到产品阈值设置"); return msg; } String levels = productThresholdInfo.getLevel(); Listlist = StringUtils.toList(levels); ProductThresholdVo productThresholdVo = BeanUtils.copy(productThresholdInfo, ProductThresholdVo.class); productThresholdVo.setLevels(list); msg.setResult(productThresholdVo); return msg; } @PostMapping(value = "setThreshold") public Msg setProductThreshold(@RequestBody JSONObject jsonObject){ Msg msg = new Msg(true); ProductThresholdInfo productThresholdInfo = productThresholdService.getOne(new LambdaQueryWrapper<>()); String explosiveContent = jsonObject.getString("explosiveContent") == null?"1000":jsonObject.getString("explosiveContent"); String boxNumber = jsonObject.getString("boxNumber") == null?"999":jsonObject.getString("boxNumber"); String levels = jsonObject.getString("levels") == null?"":jsonObject.getString("levels"); productThresholdInfo.setExplosivecontent(new BigDecimal(explosiveContent)); productThresholdInfo.setBoxnumber(Integer.parseInt(boxNumber)); productThresholdInfo.setLevel(levels); boolean i = productThresholdService.updateById(productThresholdInfo); return msg; } @GetMapping("/categorise") public Msg getProductCategories(@RequestParam("name")String name){ Msg msg = new Msg(true); List categories = productCategoryService.selectAllOrByName(name); msg.setResult(categories); return msg; } @PostMapping("/addCategory") public Msg addCategory(@RequestBody ProductCategory category){ Msg msg = new Msg(true); Msg checkMsg = checkCategory(category,ADD_OPTION); if(!checkMsg.getCode().equals(ErrorCode.SUCCESS.getCode())){ return checkMsg; } productCategoryService.save(category); return msg; } @PostMapping("/editCategory") public Msg editCategory(@RequestBody ProductCategory category){ Msg msg = new Msg(true); Msg checkMsg = checkCategory(category,EDIT_OPTION); if(!checkMsg.getCode().equals(ErrorCode.SUCCESS.getCode())){ return checkMsg; } productCategoryService.updateById(category); return msg; } @PostMapping("/delCategory") public Msg deleteCategory(@RequestBody ProductCategory category){ Msg msg = new Msg(true); Msg checkMsg = checkCategory(category,DEL_OPTION); if(!checkMsg.getCode().equals(ErrorCode.SUCCESS.getCode())){ return checkMsg; } productCategoryService.removeById(category.getId()); return msg; } @GetMapping("/majorTree") public List majorTree(){ List trees = new ArrayList<>(); byte type = 1; List categories = productCategoryService.selectCategoryByType(type); for (ProductCategory category :categories) { Tree tree = new Tree(); tree.setText(category != null ? category.getName() : null); tree.setAttributes(category != null ? category.getName() : null); trees.add(tree); } return trees; } @GetMapping("/secondaryTree") public List secondaryTree(@RequestParam("major")String major){ List trees = new ArrayList<>(); if (StringUtils.isBlank(major)){ return trees; } List categories = productCategoryService.selectCategoryByMajorType(major); for (ProductCategory category :categories) { Tree tree = new Tree(); tree.setText(category != null ? category.getName() : null); tree.setAttributes(category != null ? category.getName() : null); trees.add(tree); } return trees; } @GetMapping("/permitLevelTree") public List permitLevelTree(@RequestParam("secondary")String secondary){ List trees = new ArrayList<>(); if (StringUtils.isBlank(secondary)){ return trees; } ProductCategory productCategory = new ProductCategory(); productCategory.setType((byte)2); productCategory.setName(secondary); List categories = productCategoryService.selectCategoryByTypeAndName(productCategory); if (categories == null ){ return trees; } for (ProductCategory category : categories){ Tree tree = new Tree(); tree.setText(category.getLevel()); tree.setAttributes(category.getLevel()); trees.add(tree); } return trees; } private Msg checkCategory(ProductCategory category,Byte option){ Msg msg = new Msg("999",""); if (category == null){ msg.setMessage("操作失败:未找到对应的类别信息"); return msg; } if (category.getName() == null){ msg.setMessage("类别名称不能未空"); return msg; } if (category.getType() == null){ msg.setMessage("类型不能未空"); return msg; } if (category.getType() == 2 && StringUtils.isBlank(category.getParentname())){ msg.setMessage("选择小类对应大类不能未空"); return msg; } if (option.equals(ADD_OPTION)){ List categoryExist = productCategoryService.selectCategoryByTypeAndName(category); if (categoryExist != null && categoryExist.size()>0){ msg.setMessage("当前类别名称已存在"); return msg; } }else { List categoryExist = productCategoryService.selectCategoryByTypeAndName(category); if (categoryExist == null || categoryExist.size() == 0){ msg.setMessage("未找到当前类别名称"); return msg; } } msg.setCode("200"); return msg; } private Msg isFitThreshold(ProductInfo productInfo) { Msg msg = new Msg(ErrorCode.ERROR_999.getCode(),""); ProductThresholdInfo productThresholdInfo = productThresholdService.getOne(new LambdaQueryWrapper<>()); if (productInfo.getExplosiveContent().compareTo(productThresholdInfo.getExplosivecontent()) > 0){ msg.setMessage("含药量最大为:"+productThresholdInfo.getExplosivecontent()+",超过限制,录入失败!"); return msg; } if (productInfo.getBoxNumber() > productThresholdInfo.getBoxnumber()){ msg.setMessage("箱数最大为:"+productThresholdInfo.getBoxnumber()+"超过限制,录入失败!"); return msg; } if (productThresholdInfo.getLevel().contains(productInfo.getLevel())){ msg.setMessage("当前产品级别为限制录入级别,录入失败!"); return msg; } msg.setCode(ErrorCode.SUCCESS.getCode()); return msg; } @PostMapping("/import/old-system") public Msg importDataByExcel(MultipartFile file) { productService.importDataByExcel(file, getUser()); return success(); } }