diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransLineController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransLineController.java index be6e139ed..81ccf9f89 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransLineController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransLineController.java @@ -1,11 +1,11 @@ -/** +/** * @Project: emis * @Title: EmisTransLineController.java * @author linfso * @date 2023-12-14 13:02:47 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:
线路 控制器
*/ @@ -14,12 +14,13 @@ package com.xdadan.erp.web.emis; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; -import com.xdadan.erp.emis.domain.EmisCountry; import com.xdadan.erp.emis.domain.EmisSite; import com.xdadan.erp.emis.service.EmisBaseService; -import org.apache.commons.lang3.StringUtils; +import com.xdadan.erp.emis.domain.exception.EmisBizError; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DuplicateKeyException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -31,7 +32,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.xdadan.erp.common.annotation.Log; -import com.xdadan.erp.common.core.controller.BaseController; import com.xdadan.erp.common.core.domain.AjaxResult; import com.xdadan.erp.common.core.page.TableDataInfo; import com.xdadan.erp.common.enums.BusinessType; @@ -42,7 +42,7 @@ import com.xdadan.erp.emis.service.IEmisTransLineService; /** * 线路Controller - * + * * @author linfso * @date 2023-12-14 13:02:47 */ @@ -56,6 +56,39 @@ public class EmisTransLineController extends EmisBaseController @Autowired private EmisBaseService emisBaseService; + /** + * Excel草稿方式新增线路 + */ + @PreAuthorize("@ss.hasPermi('emis:emisTransLine:draftSubmitTransLine')") + @PostMapping(value = "/draftSubmitTransLine") + public AjaxResult draftSubmitTransLine(@RequestBody EmisTransLine emisTransLine) { + JSONObject jObjOut = new JSONObject(); + String result = "success"; + String msg = "提交成功"; + try { + emisTransLineService.draftSubmitTransLine(emisTransLine); + jObjOut.put("transLineDetail", emisTransLine); + } catch (EmisBizError ex) { + ex.printStackTrace(); + result = "fail"; + msg = ex.getErrorCode() + ":" + ex.getMessage(); + } catch (DuplicateKeyException e) { + e.printStackTrace(); + result = "fail"; + msg = "数据重复"; + } catch (Exception ex) { + result = "fail"; + ex.printStackTrace(); + msg = "系统异常:" + ex.getMessage(); + if (ex instanceof EmisBizError) { + msg = ((EmisBizError) ex).getErrorCode() + ":" + ex.getMessage(); + } + } + jObjOut.put("result", result); + jObjOut.put("msg", msg); + return AjaxResult.success("成功", jObjOut); + } + /** * 查询线路列表 */ diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransProductController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransProductController.java index 5135907d7..0228b2da5 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransProductController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTransProductController.java @@ -1,11 +1,11 @@ -/** +/** * @Project: emis * @Title: EmisTransProductController.java * @author linfso * @date 2024-01-09 11:50:34 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:运输产品类型 控制器
*/ @@ -15,8 +15,15 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; -import com.xdadan.erp.emis.domain.EmisBrand; +import com.xdadan.erp.emis.domain.EmisCountry; +import com.xdadan.erp.emis.domain.EmisTransLine; +import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; +import com.xdadan.erp.emis.domain.exception.EmisBizError; import org.springframework.beans.factory.annotation.Autowired; +import com.xdadan.erp.common.utils.DictUtils; +import com.xdadan.erp.emis.service.EmisBaseService; +import org.springframework.dao.DuplicateKeyException; +import com.alibaba.fastjson.JSONObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -28,7 +35,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.xdadan.erp.common.annotation.Log; -import com.xdadan.erp.common.core.controller.BaseController; import com.xdadan.erp.common.core.domain.AjaxResult; import com.xdadan.erp.common.core.page.TableDataInfo; import com.xdadan.erp.common.enums.BusinessType; @@ -40,7 +46,7 @@ import com.xdadan.erp.emis.service.IEmisTransProductService; /** * 运输产品类型Controller - * + * * @author linfso * @date 2024-01-09 11:50:34 */ @@ -51,6 +57,9 @@ public class EmisTransProductController extends EmisBaseController @Autowired private IEmisTransProductService emisTransProductService; + @Autowired + private EmisBaseService emisBaseService; + /** * 查询运输产品类型列表 */ @@ -129,4 +138,103 @@ public class EmisTransProductController extends EmisBaseController { return toAjax(emisTransProductService.deleteEmisTransProductByIds(ids)); } + + /** + * Excel/草稿方式提交运输产品(名称->code) + */ + @PreAuthorize("@ss.hasPermi('emis:emisTransProduct:draftSubmitProduct')") + @PostMapping(value = "/draftSubmitProduct") + public AjaxResult draftSubmitProduct(@RequestBody EmisTransProduct emisTransProduct) + { + JSONObject jObjOut = new JSONObject(); + String result = "success"; + String msg = "提交成功"; + try { + if (emisTransProduct == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "参数不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getProdName())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "产品名称不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getProdNameEn())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "英文名称不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getCountry())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "所属国家不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getTransLineCode())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "所属线路不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getCarryType())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "取重方式不能为空"); + } + if (StringUtils.isEmpty(emisTransProduct.getAgingDesc())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "时效描述不能为空"); + } + if (emisTransProduct.getMinAging() == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "最小时效不能为空"); + } + if (emisTransProduct.getMaxAging() == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "最大时效不能为空"); + } + if (emisTransProduct.getStatus() == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态不能为空"); + } + + // country(查询emis_country):name -> code + EmisCountry country = emisBaseService.getCountryByName(emisTransProduct.getCountry()); + if (country == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, + "国家未找到: " + emisTransProduct.getCountry()); + } + emisTransProduct.setCountry(country.getCode()); + emisTransProduct.setCountryName(country.getName()); + + // status(启用状态 0-未启用 1-启用) + if (emisTransProduct.getStatus() != 0 && emisTransProduct.getStatus() != 1) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "启用状态不正确: " + emisTransProduct.getStatus()); + } + + // transLineCode(查询emis_trans_line):name -> code + EmisTransLine transLine = emisBaseService.getTransLineByName(emisTransProduct.getTransLineCode()); + if (transLine == null) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, + "线路未找到: " + emisTransProduct.getTransLineCode()); + } + emisTransProduct.setTransLineCode(transLine.getLineCode()); + emisTransProduct.setTransLine(transLine.getLineName()); + + // carryType(字典emis_take_weight_method):name -> code + String carryTypeName = emisTransProduct.getCarryType(); + String carryTypeCode = DictUtils.getDictValue("emis_take_weight_method", carryTypeName); + if (StringUtils.isEmpty(carryTypeCode)) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "取重方式不正确: " + carryTypeName); + } + emisTransProduct.setCarryType(carryTypeCode); + // 仅用于返回展示 + emisTransProduct.getParams().put("carryTypeName", + DictUtils.getDictLabel("emis_take_weight_method", carryTypeCode)); + + emisTransProductService.insertEmisTransProduct(emisTransProduct); + jObjOut.put("productDetail", emisTransProduct); + } catch (EmisBizError ex) { + ex.printStackTrace(); + result = "fail"; + msg = ex.getErrorCode() + ":" + ex.getMessage(); + } catch (DuplicateKeyException e) { + e.printStackTrace(); + result = "fail"; + msg = "数据重复"; + } catch (Exception ex) { + result = "fail"; + ex.printStackTrace(); + msg = "系统异常:" + ex.getMessage(); + if (ex instanceof EmisBizError) { + msg = ((EmisBizError) ex).getErrorCode() + ":" + ex.getMessage(); + } + } + jObjOut.put("result", result); + jObjOut.put("msg", msg); + return AjaxResult.success("成功", jObjOut); + } } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransLineService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransLineService.java index 93b3f6a2e..1eba16e90 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransLineService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTransLineService.java @@ -11,6 +11,7 @@ package com.xdadan.erp.emis.service; import java.util.List; import com.xdadan.erp.emis.domain.EmisTransLine; +import com.xdadan.erp.emis.domain.exception.EmisBizError; /** * @ClassName EmisTransLineService @@ -66,4 +67,12 @@ public interface IEmisTransLineService * @return 结果 */ public int deleteEmisTransLineById(Long id); + + /** + * Excel草稿方式新增线路(带参数校验/转换) + * + * @param emisTransLine 线路 + * @return 结果 + */ + int draftSubmitTransLine(EmisTransLine emisTransLine) throws EmisBizError; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransLineServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransLineServiceImpl.java index 82fd6363a..12d5562eb 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransLineServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransLineServiceImpl.java @@ -1,10 +1,10 @@ - /** + /** * @Project: emis * @Title: EmisTransLineServiceImpl.java * @author linfso * @date 2023-12-14 13:02:47 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:线路 实体类
*/ @@ -13,28 +13,40 @@ package com.xdadan.erp.emis.service.impl; import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.xdadan.erp.common.utils.DictUtils; +import com.xdadan.erp.emis.domain.EmisBrand; +import com.xdadan.erp.emis.domain.EmisCountry; +import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.mapper.EmisBrandMapper; +import com.xdadan.erp.emis.service.EmisBaseService; +import jodd.util.StringUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.domain.EmisTransLine; import com.xdadan.erp.emis.mapper.EmisTransLineMapper; import com.xdadan.erp.emis.service.IEmisTransLineService; +import org.springframework.transaction.annotation.Transactional; /** * 线路Service业务层处理 - * + * * @author linfso * @date 2023-12-14 13:02:47 */ @Service -public class EmisTransLineServiceImpl implements IEmisTransLineService +public class EmisTransLineServiceImpl extends EmisBaseService implements IEmisTransLineService { @Autowired private EmisTransLineMapper emisTransLineMapper; + @Autowired + private EmisBrandMapper emisBrandMapper; + /** * 查询线路 - * + * * @param id 线路主键 * @return 线路 */ @@ -46,7 +58,7 @@ public class EmisTransLineServiceImpl implements IEmisTransLineService /** * 查询线路列表 - * + * * @param emisTransLine 线路 * @return 线路 */ @@ -58,7 +70,7 @@ public class EmisTransLineServiceImpl implements IEmisTransLineService /** * 新增线路 - * + * * @param emisTransLine 线路 * @return 结果 */ @@ -66,7 +78,7 @@ public class EmisTransLineServiceImpl implements IEmisTransLineService public int insertEmisTransLine(EmisTransLine emisTransLine) { // 获取线路编号 - QueryWrapper