From 2f803289885da7f64bda4b4e5f7f6d992b269166 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Mon, 2 Feb 2026 17:14:09 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=20=20=20tms-oa=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/apiweb/CustomerUserController.java | 232 ++++++++++++++++++ .../erp/apiweb/SettleBillController.java | 38 ++- .../erp/apiweb/SiteBatchController.java | 94 +++++++ .../xdadan/erp/apiweb/SupplierController.java | 117 +++++++++ .../xdadan/erp/apiweb/WaybillController.java | 52 ++++ .../erp/apiweb/utils/EntityAuditUtils.java | 156 ++++++++++++ 6 files changed, 686 insertions(+), 3 deletions(-) create mode 100644 emis-api-web/src/main/java/com/xdadan/erp/apiweb/CustomerUserController.java create mode 100644 emis-api-web/src/main/java/com/xdadan/erp/apiweb/SiteBatchController.java create mode 100644 emis-api-web/src/main/java/com/xdadan/erp/apiweb/SupplierController.java create mode 100644 emis-api-web/src/main/java/com/xdadan/erp/apiweb/utils/EntityAuditUtils.java diff --git a/emis-api-web/src/main/java/com/xdadan/erp/apiweb/CustomerUserController.java b/emis-api-web/src/main/java/com/xdadan/erp/apiweb/CustomerUserController.java new file mode 100644 index 0000000..d906059 --- /dev/null +++ b/emis-api-web/src/main/java/com/xdadan/erp/apiweb/CustomerUserController.java @@ -0,0 +1,232 @@ + +/** + * @Project: emis + * @Title: EmisCustomerUserController.java + * @author heyu + * @date 2026-02-02 03:51:54 + * @Copyright: ShangHai Duta 2022 All rights reserved. + * @version v1.0 + * @Description:
快递客户用户 控制器
+ */ + +package com.xdadan.erp.apiweb; + +import com.xdadan.erp.common.annotation.Log; +import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; +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; +import com.xdadan.erp.common.utils.StringUtils; +import com.xdadan.erp.common.utils.poi.ExcelUtil; +import com.xdadan.erp.emis.domain.EmisCountry; +import com.xdadan.erp.emis.domain.EmisCustomerUser; +import com.xdadan.erp.emis.domain.EmisRegion; +import com.xdadan.erp.emis.domain.EmisWaybill; +import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.domain.vo.MonthlyCustomerShipmentStatVO; +import com.xdadan.erp.emis.service.EmisBaseService; +import com.xdadan.erp.emis.service.IEmisCustomerUserService; +import com.xdadan.erp.emis.service.excelCellStrategy.MonthlyShipmentStatExcelUtil; +import com.xdadan.erp.apiweb.utils.EntityAuditUtils; +import com.xdadan.erp.system.service.ISysUserService; +import jodd.util.StringUtil; +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.*; + +import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.util.List; + +/** + * 快递客户用户Controller + * + * @author heyu + * @date 2026-02-02 03:51:54 + */ +@RestController +@RequestMapping("/apiweb/emisCustomerUser") +public class CustomerUserController extends BaseController +{ + @Autowired + private IEmisCustomerUserService emisCustomerUserService; + + @Autowired + private EmisBaseService emisBaseService; + + @Autowired + private ISysUserService sysUserService; + + + + /** + * 保存或更新月结客户 + * 根据monthly_pay_code判断:若编号不存在则执行新增,若存在则执行修改 + */ + @Log(title = "保存或更新月结客户", businessType = BusinessType.OTHER) + @PostMapping("/saveOrUpdateMonthUser") + public AjaxResult saveOrUpdateMonthUser(@RequestBody EmisCustomerUser emisCustomerUser) { + try { + // 检查月结卡号是否为空 + if (StringUtils.isEmpty(emisCustomerUser.getMonthlyPayCode())) { + return AjaxResult.error("月结卡号不能为空"); + } + + // 根据月结卡号查询客户是否存在 + EmisCustomerUser oldUser = emisBaseService.getCustomerUserByMonthlyPayCode(emisCustomerUser.getMonthlyPayCode()); + boolean isUpdate = oldUser != null; + + // 验证企业名称和企业税号 + try { + checkEnterprise(emisCustomerUser); + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + + // 校验账期 + if (emisCustomerUser.getCreditPeriod() != null) { + // 检查是否为整数 + if (emisCustomerUser.getCreditPeriod().scale() > 0) { + return AjaxResult.error("账期必须为整数"); + } + // 检查是否大于等于7 + if (emisCustomerUser.getCreditPeriod().compareTo(new BigDecimal("7")) < 0) { + return AjaxResult.error("账期必须大于等于7天"); + } + } + + if (isUpdate) { + // 更新操作 + emisCustomerUser.setCustomerCode(oldUser.getCustomerCode()); + emisCustomerUser.setId(oldUser.getId()); + + // 验证电话号码是否被其他客户占用 + if (!StringUtils.isEmpty(emisCustomerUser.getPhone())) { + EmisCustomerUser phoneUser = emisBaseService.getCustomerUserByPhone(emisCustomerUser.getPhone()); + if (phoneUser != null && !phoneUser.getCustomerCode().equals(emisCustomerUser.getCustomerCode())) { + return AjaxResult.error("该客户电话号码已被占用,请使用新号码"); + } + } + + // 设置客户类型等属性(保持原有值或使用新值) + emisCustomerUser.setCustomerType("2"); + emisCustomerUser.setSettledType("2"); + emisCustomerUser.setUserType("2"); + + // 设置修改人和修改网 + EntityAuditUtils.setAuditInfo(emisCustomerUser, null, true, this, sysUserService); + + return toAjax(emisCustomerUserService.updateEmisCustomerUser(emisCustomerUser)); + } else { + // 新增操作 + // 验证电话号码是否已被占用 + if (!StringUtils.isEmpty(emisCustomerUser.getPhone())) { + EmisCustomerUser phoneUser = emisBaseService.getCustomerUserByPhone(emisCustomerUser.getPhone()); + if (phoneUser != null) { + return AjaxResult.error("该客户电话号码已被占用,请使用新号码"); + } + } + + // 设置客户类型等属性 + emisCustomerUser.setCustomerType("2"); + emisCustomerUser.setSettledType("2"); + emisCustomerUser.setUserType("2"); + emisCustomerUser.setUserName(emisCustomerUser.getMonthlyPayCode()); +// emisCustomerUser.setOwnerSite(getLoginUser().getUser().getOwnerSiteCode()); + + // 设置创建人和创建网点 + EntityAuditUtils.setAuditInfo(emisCustomerUser, null, false, this, sysUserService); + + // 处理导入标识 + if ("1".equals(emisCustomerUser.getBlImport())) { + nameToCode(emisCustomerUser); + } + + return toAjax(emisCustomerUserService.insertMonthCustomerUser(emisCustomerUser)); + } + } catch (DuplicateKeyException e) { + e.printStackTrace(); + return AjaxResult.error("数据重复!"); + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("保存或更新失败:" + e.getMessage()); + } + } + + + + private void checkEnterprise(EmisCustomerUser emisCustomerUser) throws EmisBizError { + if (!"0086".equals(emisCustomerUser.getCountry())) { + return; + } + checkEnterpriseDetail(emisCustomerUser); + } + + private void checkEnterpriseDetail(EmisCustomerUser emisCustomerUser) throws EmisBizError { + if (StringUtil.isBlank(emisCustomerUser.getEnterpriseTaxId()) + || StringUtil.isBlank(emisCustomerUser.getEnterpriseName())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "企业名称/企业税号不能为空"); + } + // 验证企业名称格式 + if (!emisBaseService.validateEnterpriseName(emisCustomerUser.getEnterpriseName())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "企业名称不能包含空格、回车、@、#、$、%、&、数字等特殊符号"); + } + + // 验证企业税号格式 + if (!emisBaseService.validateEnterpriseTaxId(emisCustomerUser.getEnterpriseTaxId())) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "企业税号必须为8-18位数字和大写字母组成,不能包含汉字、空格等特殊符号"); + } + } + + private void nameToCode(EmisCustomerUser emisCustomerUser) { + // 国家 + if (!StringUtils.isEmpty(emisCustomerUser.getCountry())) { + EmisCountry country = emisBaseService.getCountryByName(emisCustomerUser.getCountry()); + if (country != null) { + emisCustomerUser.setCountry(country.getCode()); + } + } + // 省份 + if (!StringUtils.isEmpty(emisCustomerUser.getProvince())) { + EmisRegion province = emisBaseService.getRegionByName(emisCustomerUser.getCountry(), null, emisCustomerUser.getProvince()); + if (province != null) { + emisCustomerUser.setProvince(province.getRegionCode()); + } + } + // 城市 + if (!StringUtils.isEmpty(emisCustomerUser.getCity())) { + EmisRegion city = emisBaseService.getRegionByName(emisCustomerUser.getCountry(), emisCustomerUser.getProvince(), emisCustomerUser.getCity()); + if (city != null) { + emisCustomerUser.setCity(city.getRegionCode()); + } + } + // 开通oms + if (!StringUtils.isEmpty(emisCustomerUser.getBlOpenOms())) { + if ("是".equals(emisCustomerUser.getBlOpenOms())) { + emisCustomerUser.setBlOpenOms("1"); + } else { + emisCustomerUser.setBlOpenOms("0"); + } + } + // 启用状态 + if (!StringUtils.isEmpty(emisCustomerUser.getStatus())) { + if ("是".equals(emisCustomerUser.getStatus())) { + emisCustomerUser.setStatus("1"); + } else { + emisCustomerUser.setStatus("0"); + } + } + // 是否短信 + if (!StringUtils.isEmpty(emisCustomerUser.getBlSms())) { + if ("是".equals(emisCustomerUser.getBlSms())) { + emisCustomerUser.setBlSms("1"); + } else { + emisCustomerUser.setBlSms("0"); + } + } + } + +} diff --git a/emis-api-web/src/main/java/com/xdadan/erp/apiweb/SettleBillController.java b/emis-api-web/src/main/java/com/xdadan/erp/apiweb/SettleBillController.java index 904f672..92b4bcc 100644 --- a/emis-api-web/src/main/java/com/xdadan/erp/apiweb/SettleBillController.java +++ b/emis-api-web/src/main/java/com/xdadan/erp/apiweb/SettleBillController.java @@ -1,11 +1,11 @@ -/** +/** * @Project: emis * @Title: EmisSettleBillController.java * @author linfso * @date 2024-07-03 18:54:51 * @Copyright: ShangHai Duta 2022 All rights reserved. - * @version v1.0 + * @version v1.0 * @Description:结算总账单 控制器
*/ @@ -56,7 +56,7 @@ import java.util.*; /** * 结算总账单Controller - * + * * @author linfso * @date 2024-07-03 18:54:51 */ @@ -272,5 +272,37 @@ public class SettleBillController extends BaseController } + /** + * 查询结算总账单列表 + */ +// @PreAuthorize("@ss.hasPermi('emis:emisSettleBill:list')") + @GetMapping("/list") + public TableDataInfo list(EmisSettleBill emisSettleBill) + { + startPage(); + +// setPrivParams(emisSettleBill); + + String billCodeStr = MapUtil.getStr(emisSettleBill.getParams(),"billCode"); + if(!StringUtils.isEmpty(billCodeStr)){ + emisSettleBill.getParams().put("billCode",WaybillHelper.formatQueryValue(billCodeStr)); + String[] billCodeSortList = billCodeStr.split(","); + if(billCodeSortList.length>1){ + emisSettleBill.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); + } + } + + if(!StringUtils.isEmpty(emisSettleBill.getSettleBillNo())){ + emisSettleBill.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettleBill.getSettleBillNo())); + String[] settleBillNoSortList = emisSettleBill.getSettleBillNo().split(","); + if(settleBillNoSortList.length>1){ + emisSettleBill.getParams().put("settleBillNoSortList",Arrays.asList(settleBillNoSortList)); + } + } + + List一级网点TMS组批次 控制器
+ */ + +package com.xdadan.erp.apiweb; + +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; +import com.xdadan.erp.common.utils.poi.ExcelUtil; +import com.xdadan.erp.emis.domain.EmisSite; +import com.xdadan.erp.emis.domain.EmisSupplier; +import com.xdadan.erp.emis.domain.EmisTmsSiteBatch; +import com.xdadan.erp.emis.domain.exception.EmisBizError; +import com.xdadan.erp.emis.service.IEmisSiteService; +import com.xdadan.erp.emis.service.IEmisSupplierService; +import com.xdadan.erp.emis.service.IEmisTmsSiteBatchService; +import com.xdadan.erp.emis.utils.WaybillHelper; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.List; + +/** + * 一级网点TMS组批次Controller + * + * @author heyu + * @date 2026-01-29 06:38:49 + */ +@RestController +@RequestMapping("/apiweb/emisTmsSiteBatch") +public class SiteBatchController extends BaseController +{ + @Autowired + private IEmisTmsSiteBatchService emisTmsSiteBatchService; + @Autowired + private IEmisSupplierService emisSupplierService; + @Autowired + private IEmisSiteService emisSiteService; + + /** + * 查询一级网点TMS组批次列表 + */ + @GetMapping("/list") + public TableDataInfo list(EmisTmsSiteBatch emisTmsSiteBatch) + { + + startPage(); + + // 设置通用权限查询参数 +// setPrivParams(emisTmsSiteBatch); + + if(!StringUtils.isEmpty(emisTmsSiteBatch.getBatchNo())){ + emisTmsSiteBatch.setBatchNo(WaybillHelper.formatQueryValue(emisTmsSiteBatch.getBatchNo())); + } + + if(!StringUtils.isEmpty(emisTmsSiteBatch.getCarNo())){ + emisTmsSiteBatch.setCarNo(WaybillHelper.formatQueryValue(emisTmsSiteBatch.getCarNo())); + } + + if(emisTmsSiteBatch.getParams().get("billCode")!=null){ + String billCodeStr=emisTmsSiteBatch.getParams().get("billCode").toString(); + billCodeStr=WaybillHelper.formatQueryValue(billCodeStr); + emisTmsSiteBatch.getParams().put("billCode",billCodeStr); + } + + List公司供应商表 控制器
+ */ + +package com.xdadan.erp.apiweb; + +import com.xdadan.erp.common.annotation.Log; +import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; +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; +import com.xdadan.erp.common.utils.poi.ExcelUtil; +import com.xdadan.erp.common.core.domain.entity.SysUser; +import com.xdadan.erp.emis.domain.EmisSupplier; +import com.xdadan.erp.emis.service.IEmisSupplierService; +import com.xdadan.erp.emis.utils.WaybillHelper; +import com.xdadan.erp.system.service.ISysUserService; +import com.xdadan.erp.apiweb.utils.EntityAuditUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; + +/** + * 公司供应商表Controller + * + * @author heyu + * @date 2026-01-29 02:48:51 + */ +@RestController +@RequestMapping("/apiweb/emisSupplier") +public class SupplierController extends BaseController +{ + @Autowired + private IEmisSupplierService emisSupplierService; + + @Autowired + private ISysUserService sysUserService; + + + /** + * 查询公司供应商表列表 + */ + @GetMapping("/list") + public TableDataInfo list(EmisSupplier emisSupplier) + { +// setPrivParams(emisSupplier); + + startPage(); + List