diff --git a/bms-back/bms-admin/src/main/java/com/bms/web/controller/data/BmsSupplierTypeController.java b/bms-back/bms-admin/src/main/java/com/bms/web/controller/data/BmsSupplierTypeController.java deleted file mode 100644 index 60094a9f..00000000 --- a/bms-back/bms-admin/src/main/java/com/bms/web/controller/data/BmsSupplierTypeController.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.bms.web.controller.data; - -import java.util.List; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.bms.common.annotation.Log; -import com.bms.common.core.controller.BaseController; -import com.bms.common.core.domain.AjaxResult; -import com.bms.common.core.page.TableDataInfo; -import com.bms.common.enums.BusinessType; -import com.bms.common.utils.poi.ExcelUtil; -import com.bms.system.domain.BmsSupplierType; -import com.bms.system.service.IBmsSupplierTypeService; - -/** - * 数据管理:供应商类型 - * - * @author bms - */ -@RestController -@RequestMapping("/data/supplierType") -public class BmsSupplierTypeController extends BaseController -{ - @Autowired - private IBmsSupplierTypeService supplierTypeService; - - /** - * 分页查询。名称模糊、状态精确。 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:list')") - @GetMapping("/list") - public TableDataInfo list(BmsSupplierType query) - { - startPage(); - List list = supplierTypeService.selectList(query); - return getDataTable(list); - } - - /** - * 按当前查询条件导出 - */ - @Log(title = "供应商类型", businessType = BusinessType.EXPORT) - @PreAuthorize("@ss.hasPermi('data:supplierType:export')") - @PostMapping("/export") - public void export(HttpServletResponse response, BmsSupplierType query) - { - List list = supplierTypeService.selectList(query); - ExcelUtil util = new ExcelUtil(BmsSupplierType.class); - util.exportExcel(response, list, "供应商类型"); - } - - /** - * 查询详情 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:query')") - @GetMapping("/{typeId}") - public AjaxResult getInfo(@PathVariable Long typeId) - { - return success(supplierTypeService.selectById(typeId)); - } - - /** - * 新增 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:add')") - @Log(title = "供应商类型", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody BmsSupplierType row) - { - row.setCreateBy(getUsername()); - return toAjax(supplierTypeService.insert(row)); - } - - /** - * 修改 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:edit')") - @Log(title = "供应商类型", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody BmsSupplierType row) - { - row.setUpdateBy(getUsername()); - return toAjax(supplierTypeService.update(row)); - } - - /** - * 启用或停用 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:changeStatus')") - @Log(title = "供应商类型", businessType = BusinessType.UPDATE) - @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody BmsSupplierType row) - { - row.setUpdateBy(getUsername()); - return toAjax(supplierTypeService.changeStatus(row)); - } - - /** - * 删除 - */ - @PreAuthorize("@ss.hasPermi('data:supplierType:remove')") - @Log(title = "供应商类型", businessType = BusinessType.DELETE) - @DeleteMapping("/{typeIds}") - public AjaxResult remove(@PathVariable Long[] typeIds) - { - return toAjax(supplierTypeService.deleteByIds(typeIds)); - } -} diff --git a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/domain/BmsSupplier.java b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/domain/BmsSupplier.java index e33e1479..2f004171 100644 --- a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/domain/BmsSupplier.java +++ b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/domain/BmsSupplier.java @@ -46,8 +46,8 @@ public class BmsSupplier extends BaseEntity @Excel(name = "统一社会信用代码") private String creditCode; - /** 供应商类型(1卡车行 2航司代理 3报关行 4清关行 5尾派服务商 6报关代理) */ - @Excel(name = "供应商类型", readConverterExp = "1=卡车行,2=航司代理,3=报关行,4=清关行,5=尾派服务商,6=报关代理") + /** 供应商类型(字典 bms_supplier_type) */ + @Excel(name = "供应商类型", dictType = "bms_supplier_type") private String supplierType; /** 开票类型(1增值税普通发票 2增值税专用发票 3增值税电子普通发票 4其他普通发票) */ @@ -127,11 +127,6 @@ public class BmsSupplier extends BaseEntity @Excel(name = "合作开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date cooperationStartDate; - /** 合同开始时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date contractStartDate; - /** 合同结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd") diff --git a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/service/impl/BmsSupplierServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/service/impl/BmsSupplierServiceImpl.java index ff07a7ba..243ea0e7 100644 --- a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/service/impl/BmsSupplierServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/service/impl/BmsSupplierServiceImpl.java @@ -5,15 +5,18 @@ import java.util.List; import com.bms.common.annotation.DataScope; import com.bms.common.exception.ServiceException; +import com.bms.common.core.domain.entity.SysDictData; import com.bms.common.core.domain.entity.SysUser; import com.bms.common.utils.DateUtils; import com.bms.common.utils.SecurityUtils; +import com.bms.common.utils.StringUtils; import com.bms.customer.supplierinfo.domain.BmsSupplier; import com.bms.customer.supplierinfo.domain.BmsSupplierAttachment; import com.bms.customer.supplierinfo.domain.BmsSupplierCompany; import com.bms.customer.supplierinfo.domain.BmsSupplierContact; import com.bms.customer.supplierinfo.mapper.BmsSupplierMapper; import com.bms.customer.supplierinfo.service.IBmsSupplierService; +import com.bms.system.service.ISysDictTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,9 +30,15 @@ import org.springframework.transaction.annotation.Transactional; @Service public class BmsSupplierServiceImpl implements IBmsSupplierService { + /** 供应商类型只认系统字典,不另建类型表 */ + private static final String DICT_SUPPLIER_TYPE = "bms_supplier_type"; + @Autowired private BmsSupplierMapper bmsSupplierMapper; + @Autowired + private ISysDictTypeService dictTypeService; + @Override public BmsSupplier selectBmsSupplierBySupplierId(Long supplierId) { @@ -252,7 +261,8 @@ public class BmsSupplierServiceImpl implements IBmsSupplierService @Override public int insertBmsSupplier(BmsSupplier bmsSupplier) { - checkContractDate(bmsSupplier.getContractStartDate(), bmsSupplier.getContractEndDate()); + checkContractDate(bmsSupplier.getCooperationStartDate(), bmsSupplier.getContractEndDate()); + checkSupplierType(bmsSupplier); SysUser user = SecurityUtils.getLoginUser().getUser(); bmsSupplier.setCreateTime(DateUtils.getNowDate()); bmsSupplier.setCreateBy(user.getUserName()); @@ -270,7 +280,8 @@ public class BmsSupplierServiceImpl implements IBmsSupplierService @Override public int updateBmsSupplier(BmsSupplier bmsSupplier) { - checkContractDate(bmsSupplier.getContractStartDate(), bmsSupplier.getContractEndDate()); + checkContractDate(bmsSupplier.getCooperationStartDate(), bmsSupplier.getContractEndDate()); + checkSupplierType(bmsSupplier); SysUser user = SecurityUtils.getLoginUser().getUser(); bmsSupplier.setUpdateTime(DateUtils.getNowDate()); bmsSupplier.setUpdateBy(user.getUserName()); @@ -319,7 +330,30 @@ public class BmsSupplierServiceImpl implements IBmsSupplierService { if (start != null && end != null && end.before(start)) { - throw new ServiceException("合同结束时间不能早于开始时间"); + throw new ServiceException("合同结束时间不能早于合作开始日期"); + } + } + + /** + * 供应商类型允许为空;有值时必须是字典 bms_supplier_type 中启用的键值。 + */ + private void checkSupplierType(BmsSupplier bmsSupplier) + { + if (bmsSupplier.getSupplierType() == null) + { + return; + } + String supplierType = bmsSupplier.getSupplierType().trim(); + bmsSupplier.setSupplierType(supplierType); + if (StringUtils.isEmpty(supplierType)) + { + return; + } + List datas = dictTypeService.selectDictDataByType(DICT_SUPPLIER_TYPE); + boolean exists = datas != null && datas.stream().anyMatch(d -> supplierType.equals(d.getDictValue())); + if (!exists) + { + throw new ServiceException("供应商类型不存在或已停用"); } } } diff --git a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/sync/SupplierSyncService.java b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/sync/SupplierSyncService.java index dafc8608..ee3389f0 100644 --- a/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/sync/SupplierSyncService.java +++ b/bms-back/bms-system/src/main/java/com/bms/customer/supplierinfo/sync/SupplierSyncService.java @@ -1,6 +1,7 @@ package com.bms.customer.supplierinfo.sync; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.LinkedHashMap; @@ -12,8 +13,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.bms.common.core.domain.entity.SysDictData; +import com.bms.common.utils.StringUtils; import com.bms.customer.supplierinfo.domain.BmsSupplier; import com.bms.customer.supplierinfo.mapper.SupplierSyncMapper; +import com.bms.system.service.ISysDictTypeService; /** * 老系统 Oracle 服务商数据 -> sup_supplier 每日同步。 @@ -35,11 +39,17 @@ public class SupplierSyncService /** 写库人标记,便于事后甄别同步数据 */ public static final String SYNC_MARKER = "oracle-sync"; - /** 源中文服务商类型 -> sup_supplier.supplier_type 字典码(4清关行 5尾派服务商) */ - private static final String TYPE_QINGGUAN = "清关"; - private static final String TYPE_WEICHENG = "尾程渠道"; - private static final String CODE_QINGGUAN_HANG = "4"; - private static final String CODE_WEIPAI = "5"; + /** 供应商类型字典。老系统中文与字典标签不一致时,先折成标签再取键值 */ + private static final String DICT_SUPPLIER_TYPE = "bms_supplier_type"; + private static final Map SOURCE_TYPE_LABEL; + + static + { + Map labels = new LinkedHashMap<>(); + labels.put("尾程渠道", "尾派服务商"); + labels.put("清关", "清关行"); + SOURCE_TYPE_LABEL = Collections.unmodifiableMap(labels); + } /** sup_supplier 字符串列长度 */ private static final int LEN_CODE = 50; @@ -59,6 +69,9 @@ public class SupplierSyncService @Autowired private SupplierSyncMapper supplierSyncMapper; + @Autowired + private ISysDictTypeService dictTypeService; + /** * 执行一次全量同步。 * @@ -84,6 +97,11 @@ public class SupplierSyncService } Set existingCodes = new HashSet<>(supplierSyncMapper.selectExistingCodes()); + List supplierTypes = dictTypeService.selectDictDataByType(DICT_SUPPLIER_TYPE); + if (supplierTypes == null) + { + supplierTypes = Collections.emptyList(); + } List inserts = new ArrayList<>(); List updates = new ArrayList<>(); @@ -120,7 +138,7 @@ public class SupplierSyncService } LinkedHashSet channels = channelMap.getOrDefault(code, new LinkedHashSet<>()); - BmsSupplier s = mapRow(row, code, name, channels, warnings); + BmsSupplier s = mapRow(row, code, name, channels, supplierTypes, warnings); if (existingCodes.contains(code)) { s.setUpdateBy(SYNC_MARKER); @@ -159,14 +177,15 @@ public class SupplierSyncService * 单行映射 */ private BmsSupplier mapRow(Map row, String code, String name, - LinkedHashSet channels, List warnings) + LinkedHashSet channels, List supplierTypes, + List warnings) { BmsSupplier s = new BmsSupplier(); s.setSupplierCode(truncate(code, LEN_CODE, code, "supplier_code", warnings)); s.setSupplierName(truncate(name, LEN_NAME, code, "supplier_name", warnings)); s.setDelFlag("0"); - s.setSupplierType(mapServiceType(getStr(row, "SERVICE_TYPE"), code, warnings)); + s.setSupplierType(mapServiceType(getStr(row, "SERVICE_TYPE"), code, supplierTypes, warnings)); s.setIsEnable(mapEnable(getStr(row, "BL_OPEN"))); s.setRemark(truncate(getStr(row, "REMARK"), LEN_REMARK, code, "remark", warnings)); @@ -178,25 +197,35 @@ public class SupplierSyncService } /** - * 源 SERVICE_TYPE 为中文:尾程渠道 -> 5(尾派服务商),清关 -> 4(清关行); - * 其他/空值置空并告警,由业务人员手工选择。 + * 源 SERVICE_TYPE 按字典 bms_supplier_type 解析。 + * 老系统「尾程渠道」「清关」先折成字典标签,再取启用项的键值;对不上则置空。 */ - private static String mapServiceType(String raw, String supplierCode, List warnings) + private static String mapServiceType(String raw, String supplierCode, List supplierTypes, + List warnings) { String v = clean(raw); if (v == null) { return null; } - if (TYPE_WEICHENG.equals(v)) + if (supplierTypes == null || supplierTypes.isEmpty()) { - return CODE_WEIPAI; + warnings.add(supplierCode + ": 字典 " + DICT_SUPPLIER_TYPE + " 无可用数据,类型置空"); + return null; } - if (TYPE_QINGGUAN.equals(v)) + String label = SOURCE_TYPE_LABEL.getOrDefault(v, v); + for (SysDictData dict : supplierTypes) { - return CODE_QINGGUAN_HANG; + if (dict == null || StringUtils.isEmpty(dict.getDictValue())) + { + continue; + } + if (label.equals(dict.getDictLabel()) || v.equals(dict.getDictLabel()) || v.equals(dict.getDictValue())) + { + return dict.getDictValue(); + } } - warnings.add(supplierCode + ": 未知服务商类型 " + v + ",类型置空"); + warnings.add(supplierCode + ": 服务商类型「" + v + "」不在字典 " + DICT_SUPPLIER_TYPE + " 中,类型置空"); return null; } diff --git a/bms-back/bms-system/src/main/java/com/bms/system/domain/BmsSupplierType.java b/bms-back/bms-system/src/main/java/com/bms/system/domain/BmsSupplierType.java deleted file mode 100644 index 8b2a7366..00000000 --- a/bms-back/bms-system/src/main/java/com/bms/system/domain/BmsSupplierType.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.bms.system.domain; - -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.bms.common.annotation.Excel; -import com.bms.common.core.domain.BaseEntity; - -/** - * 供应商类型 bms_supplier_type - * 类型编码与字典 bms_supplier_type 的字典键值一致,供供应商档案引用。 - * - * @author bms - */ -public class BmsSupplierType extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 类型ID */ - private Long typeId; - - /** 类型编码(字典键值) */ - @Excel(name = "类型编码") - private String typeCode; - - /** 类型名称 */ - @Excel(name = "类型名称") - private String typeName; - - /** 显示排序 */ - @Excel(name = "显示排序") - private Integer typeSort; - - /** 状态(0正常 1停用) */ - @Excel(name = "状态", readConverterExp = "0=正常,1=停用") - private String status; - - /** 删除标记(0存在 1删除) */ - private String delFlag; - - public Long getTypeId() - { - return typeId; - } - - public void setTypeId(Long typeId) - { - this.typeId = typeId; - } - - public String getTypeCode() - { - return typeCode; - } - - public void setTypeCode(String typeCode) - { - this.typeCode = typeCode; - } - - public String getTypeName() - { - return typeName; - } - - public void setTypeName(String typeName) - { - this.typeName = typeName; - } - - public Integer getTypeSort() - { - return typeSort; - } - - public void setTypeSort(Integer typeSort) - { - this.typeSort = typeSort; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getDelFlag() - { - return delFlag; - } - - public void setDelFlag(String delFlag) - { - this.delFlag = delFlag; - } - - @Override - public String toString() - { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("typeId", getTypeId()) - .append("typeCode", getTypeCode()) - .append("typeName", getTypeName()) - .append("typeSort", getTypeSort()) - .append("status", getStatus()) - .append("remark", getRemark()) - .toString(); - } -} diff --git a/bms-back/bms-system/src/main/java/com/bms/system/mapper/BmsSupplierTypeMapper.java b/bms-back/bms-system/src/main/java/com/bms/system/mapper/BmsSupplierTypeMapper.java deleted file mode 100644 index 282c912a..00000000 --- a/bms-back/bms-system/src/main/java/com/bms/system/mapper/BmsSupplierTypeMapper.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.bms.system.mapper; - -import java.util.List; -import org.apache.ibatis.annotations.Param; -import com.bms.system.domain.BmsSupplierType; - -/** - * 供应商类型数据层 - * - * @author bms - */ -public interface BmsSupplierTypeMapper -{ - /** - * 按名称、状态查询供应商类型 - * - * @param query 查询条件 - * @return 类型列表 - */ - List selectList(BmsSupplierType query); - - /** - * 按主键查询未删除的类型 - * - * @param typeId 类型ID - * @return 类型 - */ - BmsSupplierType selectById(Long typeId); - - /** - * 统计未删除的同编码数量 - * - * @param typeCode 类型编码 - * @param excludeId 排除的类型ID,新增时为空 - * @return 数量 - */ - int countByTypeCode(@Param("typeCode") String typeCode, @Param("excludeId") Long excludeId); - - /** - * 统计未删除的同名称数量 - * - * @param typeName 类型名称 - * @param excludeId 排除的类型ID,新增时为空 - * @return 数量 - */ - int countByTypeName(@Param("typeName") String typeName, @Param("excludeId") Long excludeId); - - /** - * 新增供应商类型 - * - * @param row 类型 - * @return 影响行数 - */ - int insert(BmsSupplierType row); - - /** - * 修改供应商类型(不改编码,避免已引用的供应商失联) - * - * @param row 类型 - * @return 影响行数 - */ - int update(BmsSupplierType row); - - /** - * 只更新启用状态 - * - * @param row 含 typeId、status、updateBy - * @return 影响行数 - */ - int updateStatus(BmsSupplierType row); - - /** - * 逻辑删除 - * - * @param typeIds 类型ID - * @return 影响行数 - */ - int deleteByIds(Long[] typeIds); - - /** - * 按字典类型和键值取字典编码 - * - * @param dictType 字典类型 - * @param dictValue 字典键值 - * @return 字典编码,不存在时为空 - */ - Long selectDictCode(@Param("dictType") String dictType, @Param("dictValue") String dictValue); - - /** - * 写入字典数据 - * - * @param row 类型,字典类型由调用方放入 remark 以外的固定值,见 XML - * @return 影响行数 - */ - int insertDict(BmsSupplierType row); - - /** - * 按类型编码更新字典标签、排序和状态 - * - * @param row 类型 - * @return 影响行数 - */ - int updateDict(BmsSupplierType row); - - /** - * 按类型编码删除字典数据 - * - * @param typeCode 类型编码 - * @return 影响行数 - */ - int deleteDictByCode(String typeCode); -} diff --git a/bms-back/bms-system/src/main/java/com/bms/system/service/IBmsSupplierTypeService.java b/bms-back/bms-system/src/main/java/com/bms/system/service/IBmsSupplierTypeService.java deleted file mode 100644 index 1f97c5be..00000000 --- a/bms-back/bms-system/src/main/java/com/bms/system/service/IBmsSupplierTypeService.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bms.system.service; - -import java.util.List; -import com.bms.system.domain.BmsSupplierType; - -/** - * 供应商类型服务 - * - * @author bms - */ -public interface IBmsSupplierTypeService -{ - /** - * 分页前的条件查询,分页由调用方开启 - * - * @param query 名称、状态 - * @return 类型列表 - */ - List selectList(BmsSupplierType query); - - /** - * 查询单个类型 - * - * @param typeId 类型ID - * @return 类型 - */ - BmsSupplierType selectById(Long typeId); - - /** - * 新增类型,并同步字典 bms_supplier_type - * - * @param row 类型 - * @return 影响行数 - */ - int insert(BmsSupplierType row); - - /** - * 修改类型名称、排序、状态、备注,并同步字典 - * - * @param row 类型 - * @return 影响行数 - */ - int update(BmsSupplierType row); - - /** - * 启用或停用,并同步字典状态 - * - * @param row 含 typeId 与 status - * @return 影响行数 - */ - int changeStatus(BmsSupplierType row); - - /** - * 逻辑删除,并从字典中移除对应键值 - * - * @param typeIds 类型ID - * @return 影响行数 - */ - int deleteByIds(Long[] typeIds); -} diff --git a/bms-back/bms-system/src/main/java/com/bms/system/service/impl/BmsSupplierTypeServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/system/service/impl/BmsSupplierTypeServiceImpl.java deleted file mode 100644 index 3e607da6..00000000 --- a/bms-back/bms-system/src/main/java/com/bms/system/service/impl/BmsSupplierTypeServiceImpl.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.bms.system.service.impl; - -import java.util.ArrayList; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import com.bms.common.core.domain.entity.SysDictData; -import com.bms.common.exception.ServiceException; -import com.bms.common.utils.DictUtils; -import com.bms.common.utils.StringUtils; -import com.bms.system.domain.BmsSupplierType; -import com.bms.system.mapper.BmsSupplierTypeMapper; -import com.bms.system.mapper.SysDictDataMapper; -import com.bms.system.service.IBmsSupplierTypeService; - -/** - * 供应商类型服务实现。 - * 供应商类型服务实现。_DETAIL - * - * @author bms - */ -@Service -public class BmsSupplierTypeServiceImpl implements IBmsSupplierTypeService -{ - /** 字典类型,与系统字典管理中的类型编码一致 */ - public static final String DICT_TYPE = "bms_supplier_type"; - - @Autowired - private BmsSupplierTypeMapper supplierTypeMapper; - - @Autowired - private SysDictDataMapper dictDataMapper; - - @Override - public List selectList(BmsSupplierType query) - { - return supplierTypeMapper.selectList(query); - } - - @Override - public BmsSupplierType selectById(Long typeId) - { - return supplierTypeMapper.selectById(typeId); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public int insert(BmsSupplierType row) - { - normalize(row); - validate(row, null); - if (row.getTypeSort() == null) - { - row.setTypeSort(0); - } - if (StringUtils.isEmpty(row.getStatus())) - { - row.setStatus("0"); - } - int rows = supplierTypeMapper.insert(row); - syncDict(row); - return rows; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public int update(BmsSupplierType row) - { - if (row.getTypeId() == null) - { - throw new ServiceException("类型ID不能为空"); - } - BmsSupplierType existing = requireActive(row.getTypeId()); - normalize(row); - if (StringUtils.isEmpty(row.getTypeName())) - { - row.setTypeName(existing.getTypeName()); - } - if (row.getTypeSort() == null) - { - row.setTypeSort(existing.getTypeSort()); - } - if (StringUtils.isEmpty(row.getStatus())) - { - row.setStatus(existing.getStatus()); - } - validateNameAndStatus(row, row.getTypeId()); - row.setTypeCode(existing.getTypeCode()); - int rows = supplierTypeMapper.update(row); - syncDict(row); - return rows; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public int changeStatus(BmsSupplierType row) - { - if (row.getTypeId() == null) - { - throw new ServiceException("类型ID不能为空"); - } - if (!"0".equals(row.getStatus()) && !"1".equals(row.getStatus())) - { - throw new ServiceException("状态只能是正常或停用"); - } - BmsSupplierType existing = requireActive(row.getTypeId()); - existing.setStatus(row.getStatus()); - existing.setUpdateBy(row.getUpdateBy()); - int rows = supplierTypeMapper.updateStatus(existing); - syncDict(existing); - return rows; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public int deleteByIds(Long[] typeIds) - { - if (typeIds == null || typeIds.length == 0) - { - return 0; - } - for (Long typeId : typeIds) - { - BmsSupplierType existing = supplierTypeMapper.selectById(typeId); - if (existing != null && StringUtils.isNotEmpty(existing.getTypeCode())) - { - supplierTypeMapper.deleteDictByCode(existing.getTypeCode()); - } - } - int rows = supplierTypeMapper.deleteByIds(typeIds); - refreshDictCache(); - return rows; - } - - /** - * 校验编码、名称唯一,并整理状态 - */ - private void validate(BmsSupplierType row, Long excludeId) - { - if (StringUtils.isEmpty(row.getTypeCode())) - { - throw new ServiceException("类型编码不能为空"); - } - if (!row.getTypeCode().matches("[0-9A-Za-z_-]{1,32}")) - { - throw new ServiceException("类型编码只能是字母、数字、下划线或中划线,最长32位"); - } - if (supplierTypeMapper.countByTypeCode(row.getTypeCode(), excludeId) > 0) - { - throw new ServiceException("类型编码已存在:" + row.getTypeCode()); - } - validateNameAndStatus(row, excludeId); - } - - private void validateNameAndStatus(BmsSupplierType row, Long excludeId) - { - if (StringUtils.isEmpty(row.getTypeName())) - { - throw new ServiceException("类型名称不能为空"); - } - if (row.getTypeName().length() > 100) - { - throw new ServiceException("类型名称不能超过100个字符"); - } - if (supplierTypeMapper.countByTypeName(row.getTypeName(), excludeId) > 0) - { - throw new ServiceException("类型名称已存在:" + row.getTypeName()); - } - if (StringUtils.isNotEmpty(row.getStatus()) - && !"0".equals(row.getStatus()) && !"1".equals(row.getStatus())) - { - throw new ServiceException("状态只能是正常或停用"); - } - } - - private BmsSupplierType requireActive(Long typeId) - { - BmsSupplierType existing = supplierTypeMapper.selectById(typeId); - if (existing == null) - { - throw new ServiceException("供应商类型不存在或已删除"); - } - return existing; - } - - private void normalize(BmsSupplierType row) - { - if (row.getTypeCode() != null) - { - row.setTypeCode(row.getTypeCode().trim()); - } - if (row.getTypeName() != null) - { - row.setTypeName(row.getTypeName().trim()); - } - if (row.getRemark() != null) - { - row.setRemark(row.getRemark().trim()); - } - } - - /** - * 按类型编码新增或更新字典项,并刷新该字典缓存 - */ - private void syncDict(BmsSupplierType row) - { - Long dictCode = supplierTypeMapper.selectDictCode(DICT_TYPE, row.getTypeCode()); - if (dictCode == null) - { - if (StringUtils.isEmpty(row.getCreateBy())) - { - row.setCreateBy(row.getUpdateBy()); - } - supplierTypeMapper.insertDict(row); - } - else - { - supplierTypeMapper.updateDict(row); - } - refreshDictCache(); - } - - /** - * 只缓存正常状态的字典项,停用后下拉不再出现 - */ - private void refreshDictCache() - { - List dictDatas = dictDataMapper.selectDictDataByType(DICT_TYPE); - DictUtils.setDictCache(DICT_TYPE, dictDatas == null ? new ArrayList() : dictDatas); - } -} diff --git a/bms-back/bms-system/src/main/resources/mapper/customer/BmsSupplierMapper.xml b/bms-back/bms-system/src/main/resources/mapper/customer/BmsSupplierMapper.xml index 6a101619..ab0252bb 100644 --- a/bms-back/bms-system/src/main/resources/mapper/customer/BmsSupplierMapper.xml +++ b/bms-back/bms-system/src/main/resources/mapper/customer/BmsSupplierMapper.xml @@ -30,7 +30,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -48,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" s.is_enable, s.purchaser_user_id, s.purchaser_user, s.settlement_user_id, s.settlement_user, s.service_user_id, s.service_user, s.ed, s.zq, s.settlement_type, s.temp_ed, s.account_balance, s.foreign_currency_balance, s.credit_ed, s.weight_threshold, s.throw_ratio, s.cooperation_start_date, - s.contract_start_date, s.contract_end_date, s.cooperation_status, s.channel_ids, s.remark, + s.contract_end_date, s.cooperation_status, s.channel_ids, s.remark, s.create_by, s.create_time, s.update_by, s.update_time, s.del_flag from sup_supplier s - - - del_flag = '0' - - and type_name like concat('%', #{typeName}, '%') - - - and status = #{status} - - - order by type_sort asc, type_id asc - - - - - - - - - - insert into bms_supplier_type ( - type_code, type_name, type_sort, status, remark, create_by, create_time, del_flag - ) values ( - #{typeCode}, #{typeName}, #{typeSort}, #{status}, #{remark}, #{createBy}, sysdate(), '0' - ) - - - - update bms_supplier_type - - type_name = #{typeName}, - type_sort = #{typeSort}, - status = #{status}, - remark = #{remark}, - update_by = #{updateBy}, - update_time = sysdate() - - where type_id = #{typeId} and del_flag = '0' - - - - update bms_supplier_type - set status = #{status}, - update_by = #{updateBy}, - update_time = sysdate() - where type_id = #{typeId} and del_flag = '0' - - - - update bms_supplier_type - set del_flag = '1', - type_code = concat(type_code, '#', type_id), - type_name = concat(type_name, '#', type_id), - update_time = sysdate() - where del_flag = '0' and type_id in - - #{id} - - - - - - - insert into sys_dict_data ( - dict_sort, dict_label, dict_value, dict_type, css_class, list_class, - is_default, status, create_by, create_time, remark - ) values ( - #{typeSort}, #{typeName}, #{typeCode}, 'bms_supplier_type', '', 'primary', - 'N', #{status}, #{createBy}, sysdate(), #{remark} - ) - - - - update sys_dict_data - set dict_sort = #{typeSort}, - dict_label = #{typeName}, - status = #{status}, - remark = #{remark}, - update_by = #{updateBy}, - update_time = sysdate() - where dict_type = 'bms_supplier_type' and dict_value = #{typeCode} - - - - delete from sys_dict_data - where dict_type = 'bms_supplier_type' and dict_value = #{typeCode} - - diff --git a/bms-back/sql/bms_init.sql b/bms-back/sql/bms_init.sql index 28664879..166cee08 100644 --- a/bms-back/sql/bms_init.sql +++ b/bms-back/sql/bms_init.sql @@ -1765,7 +1765,7 @@ CREATE TABLE `sup_supplier` ( `supplier_name` varchar(100) NOT NULL COMMENT '供应商名称', `supplier_code_dw` varchar(50) DEFAULT '' COMMENT '对外代码', `credit_code` varchar(18) DEFAULT '' COMMENT '统一社会信用代码', - `supplier_type` char(1) DEFAULT NULL COMMENT '供应商类型(1卡车行 2航司代理 3报关行 4清关行 5尾派服务商 6报关代理)', + `supplier_type` varchar(32) DEFAULT NULL COMMENT '供应商类型(字典 bms_supplier_type)', `invoice_type` char(1) DEFAULT NULL COMMENT '开票类型(1增值税普通发票 2增值税专用发票 3增值税电子普通发票 4其他普通发票)', `kache_type` char(1) DEFAULT NULL COMMENT '卡车行类型(0国内 1国外)', `is_enable` char(1) DEFAULT '0' COMMENT '启用状态(0正常 1停用)', @@ -1785,7 +1785,6 @@ CREATE TABLE `sup_supplier` ( `weight_threshold` decimal(15,2) DEFAULT '0.00' COMMENT '重量阈值(kg)', `throw_ratio` decimal(15,2) DEFAULT '0.00' COMMENT '抛比(%)', `cooperation_start_date` date DEFAULT NULL COMMENT '合作开始日期', - `contract_start_date` date DEFAULT NULL COMMENT '合同开始时间', `contract_end_date` date DEFAULT NULL COMMENT '合同结束时间', `cooperation_status` char(1) DEFAULT '0' COMMENT '合作状态(0正常 1暂停 2终止)', `channel_ids` varchar(1000) DEFAULT NULL COMMENT '绑定的渠道/服务ID(多个用逗号分隔)', diff --git a/bms-back/sql/customer+supplier/alter_sup_supplier_oracle_sync_20260929.sql b/bms-back/sql/customer+supplier/alter_sup_supplier_oracle_sync_20260929.sql index dad19d27..c1cfce2f 100644 --- a/bms-back/sql/customer+supplier/alter_sup_supplier_oracle_sync_20260929.sql +++ b/bms-back/sql/customer+supplier/alter_sup_supplier_oracle_sync_20260929.sql @@ -2,14 +2,14 @@ -- 供应商 Oracle(TAB_SUPPLIER) 定时同步 —— sup_supplier 三个类型字段对齐 -- 日期:2026-09-29 -- 字典口径以老系统 TAB_SUPPLIER 为准: --- supplier_type 供应商类型(已有列,改口径):1卡车行 2航司代理 3报关行 4清关行 5尾派服务商 6报关代理 +-- supplier_type 供应商类型(已有列,改口径):字典 bms_supplier_type -- invoice_type 开票类型(新增列):1增值税普通发票 2增值税专用发票 3增值税电子普通发票 4其他普通发票 -- kache_type 卡车行类型(新增列):0国内 1国外 -- ============================================================ -- 1. supplier_type:旧口径(0生产商 1代理商 2个人 3物流商 4其他)废弃,默认值放开为 NULL ALTER TABLE `sup_supplier` - MODIFY COLUMN `supplier_type` char(1) DEFAULT NULL COMMENT '供应商类型(1卡车行 2航司代理 3报关行 4清关行 5尾派服务商 6报关代理)'; + MODIFY COLUMN `supplier_type` varchar(32) DEFAULT NULL COMMENT '供应商类型(字典 bms_supplier_type)'; -- 2. invoice_type 开票类型(新增) ALTER TABLE `sup_supplier` diff --git a/bms-back/sql/data/bms_supplier_type.sql b/bms-back/sql/data/bms_supplier_type.sql index 0fad38a7..ebd42b3b 100644 --- a/bms-back/sql/data/bms_supplier_type.sql +++ b/bms-back/sql/data/bms_supplier_type.sql @@ -1,47 +1,43 @@ --- 数据管理:供应商类型 --- 业务表与字典 bms_supplier_type 使用同一套编码,初始数据与现有供应商档案口径一致 +-- 供应商类型只维护在数据字典 bms_supplier_type +-- 供应商档案下拉、列表、导出都读该字典;不再使用业务表和独立菜单 SET NAMES utf8mb4; -CREATE TABLE IF NOT EXISTS bms_supplier_type ( - type_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类型ID', - type_code varchar(32) NOT NULL COMMENT '类型编码(字典键值)', - type_name varchar(100) NOT NULL COMMENT '类型名称', - type_sort int(4) NOT NULL DEFAULT 0 COMMENT '显示排序', - status char(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)', - remark varchar(500) DEFAULT NULL COMMENT '备注', - create_by varchar(64) DEFAULT '' COMMENT '创建者', - create_time datetime DEFAULT NULL COMMENT '创建时间', - update_by varchar(64) DEFAULT '' COMMENT '更新者', - update_time datetime DEFAULT NULL COMMENT '更新时间', - del_flag char(1) DEFAULT '0' COMMENT '删除标记(0存在 1删除)', - PRIMARY KEY (type_id), - UNIQUE KEY uk_bms_supplier_type_code (type_code), - UNIQUE KEY uk_bms_supplier_type_name (type_name), - KEY idx_bms_supplier_type_status (status) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商类型'; +-- 已执行过旧脚本时,拆掉供应商类型业务表和「数据管理 / 供应商类型」菜单 +DROP TABLE IF EXISTS bms_supplier_type; --- 已有供应商档案的类型列只有 1 位,放宽后才能保存新编码 +DELETE rm FROM sys_role_menu rm +INNER JOIN sys_menu m ON rm.menu_id = m.menu_id +INNER JOIN sys_menu p ON m.parent_id = p.menu_id +WHERE m.menu_type = 'F' + AND (p.perms = 'data:supplierType:list' OR p.component = 'data/supplierType/index'); + +DELETE m FROM sys_menu m +INNER JOIN sys_menu p ON m.parent_id = p.menu_id +WHERE m.menu_type = 'F' + AND (p.perms = 'data:supplierType:list' OR p.component = 'data/supplierType/index'); + +DELETE rm FROM sys_role_menu rm +INNER JOIN sys_menu m ON rm.menu_id = m.menu_id +WHERE m.perms LIKE 'data:supplierType:%' + OR m.component = 'data/supplierType/index'; + +DELETE FROM sys_menu +WHERE perms LIKE 'data:supplierType:%' + OR component = 'data/supplierType/index'; + +-- 类型编码不再限制为 1 位,与字典键值对齐 ALTER TABLE sup_supplier MODIFY COLUMN supplier_type varchar(32) DEFAULT NULL COMMENT '供应商类型(字典 bms_supplier_type)'; -INSERT INTO bms_supplier_type (type_code, type_name, type_sort, status, remark, create_by, create_time, del_flag) -SELECT v.type_code, v.type_name, v.type_sort, '0', v.remark, 'admin', sysdate(), '0' -FROM ( - SELECT '1' AS type_code, '卡车行' AS type_name, 1 AS type_sort, '原供应商档案口径' AS remark - UNION ALL SELECT '2', '航司代理', 2, '原供应商档案口径' - UNION ALL SELECT '3', '报关行', 3, '原供应商档案口径' - UNION ALL SELECT '4', '清关行', 4, '原供应商档案口径' - UNION ALL SELECT '5', '尾派服务商', 5, '原供应商档案口径' - UNION ALL SELECT '6', '报关代理', 6, '原供应商档案口径' -) v -WHERE NOT EXISTS ( - SELECT 1 FROM bms_supplier_type t WHERE t.type_code = v.type_code OR t.type_name = v.type_name -); - INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) -SELECT '供应商类型', 'bms_supplier_type', '0', 'admin', sysdate(), '供应商档案使用的类型,与供应商类型管理保持一致' +SELECT '供应商类型', 'bms_supplier_type', '0', 'admin', sysdate(), '供应商档案使用的类型,在系统字典中维护' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'bms_supplier_type'); +UPDATE sys_dict_type +SET dict_name = '供应商类型', + remark = '供应商档案使用的类型,在系统字典中维护' +WHERE dict_type = 'bms_supplier_type'; + INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) SELECT v.type_sort, v.type_name, v.type_code, 'bms_supplier_type', '', 'primary', 'N', '0', 'admin', sysdate(), v.remark FROM ( @@ -55,49 +51,3 @@ FROM ( WHERE NOT EXISTS ( SELECT 1 FROM sys_dict_data d WHERE d.dict_type = 'bms_supplier_type' AND d.dict_value = v.type_code ); - -SET @parentId := ( - SELECT menu_id FROM sys_menu - WHERE path = 'data' AND menu_type = 'M' - ORDER BY menu_id ASC LIMIT 1 -); -SET @parentId := IFNULL(@parentId, ( - SELECT parent_id FROM sys_menu - WHERE perms = 'data:region:list' OR component = 'data/region/index' OR component = 'data/exchangerate/index' - ORDER BY menu_id ASC LIMIT 1 -)); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, remark) -SELECT 2490, '供应商类型', @parentId, 40, 'supplierType', 'data/supplierType/index', '', 'SupplierType', 1, 0, 'C', '0', '0', 'data:supplierType:list', 'tree', 'admin', sysdate(), '供应商类型维护,并同步字典 bms_supplier_type' -FROM DUAL WHERE @parentId IS NOT NULL AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2490 OR perms = 'data:supplierType:list'); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2491, '查询', 2490, 1, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:query', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2491); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2492, '新增', 2490, 2, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:add', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2492); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2493, '修改', 2490, 3, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:edit', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2493); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2494, '删除', 2490, 4, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:remove', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2494); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2495, '导出', 2490, 5, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:export', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2495); - -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time) -SELECT 2496, '启停', 2490, 6, '', NULL, 1, 0, 'F', '0', '0', 'data:supplierType:changeStatus', '#', 'admin', sysdate() -FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2496); - -INSERT INTO sys_role_menu (role_id, menu_id) -SELECT 1, m.menu_id FROM ( - SELECT 2490 AS menu_id UNION SELECT 2491 UNION SELECT 2492 UNION SELECT 2493 - UNION SELECT 2494 UNION SELECT 2495 UNION SELECT 2496 -) m -WHERE NOT EXISTS (SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id); diff --git a/bms-back/sql/data/customer_supplier_contract_date.sql b/bms-back/sql/data/customer_supplier_contract_date.sql index 25bc00aa..dfba8dde 100644 --- a/bms-back/sql/data/customer_supplier_contract_date.sql +++ b/bms-back/sql/data/customer_supplier_contract_date.sql @@ -1,11 +1,40 @@ --- 客户、供应商主表增加合同开始时间、合同结束时间 --- 已存在的库执行本脚本;列已存在时不要重复执行 +-- 客户主表增加合同开始时间、合同结束时间 +-- 供应商只增加合同结束时间;合同开始时间与原有合作开始日期重复,已有列则删除 +-- 客户列已存在时不要重复执行前面的 ALTER SET NAMES utf8mb4; +-- 先去掉供应商上后加的合同开始时间,避免后续语句失败时这一列还留着 +SET @has_supplier_contract_start := ( + SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'sup_supplier' + AND COLUMN_NAME = 'contract_start_date' +); +SET @drop_supplier_contract_start := IF( + @has_supplier_contract_start > 0, + 'ALTER TABLE sup_supplier DROP COLUMN contract_start_date', + 'SELECT 1' +); +PREPARE drop_supplier_contract_start_stmt FROM @drop_supplier_contract_start; +EXECUTE drop_supplier_contract_start_stmt; +DEALLOCATE PREPARE drop_supplier_contract_start_stmt; + ALTER TABLE ctr_customer ADD COLUMN contract_start_date date DEFAULT NULL COMMENT '合同开始时间' AFTER credit_ed, ADD COLUMN contract_end_date date DEFAULT NULL COMMENT '合同结束时间' AFTER contract_start_date; -ALTER TABLE sup_supplier - ADD COLUMN contract_start_date date DEFAULT NULL COMMENT '合同开始时间' AFTER cooperation_start_date, - ADD COLUMN contract_end_date date DEFAULT NULL COMMENT '合同结束时间' AFTER contract_start_date; +-- 供应商原有合作开始日期,只补合同结束时间(已有则跳过) +SET @has_supplier_contract_end := ( + SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'sup_supplier' + AND COLUMN_NAME = 'contract_end_date' +); +SET @add_supplier_contract_end := IF( + @has_supplier_contract_end = 0, + 'ALTER TABLE sup_supplier ADD COLUMN contract_end_date date DEFAULT NULL COMMENT ''合同结束时间'' AFTER cooperation_start_date', + 'SELECT 1' +); +PREPARE add_supplier_contract_end_stmt FROM @add_supplier_contract_end; +EXECUTE add_supplier_contract_end_stmt; +DEALLOCATE PREPARE add_supplier_contract_end_stmt; diff --git a/bms-front/src/api/data/supplierType.js b/bms-front/src/api/data/supplierType.js deleted file mode 100644 index 1d3f5f41..00000000 --- a/bms-front/src/api/data/supplierType.js +++ /dev/null @@ -1,47 +0,0 @@ -import request from '@/utils/request' - -export function listSupplierType(query) { - return request({ - url: '/data/supplierType/list', - method: 'get', - params: query - }) -} - -export function getSupplierType(typeId) { - return request({ - url: '/data/supplierType/' + typeId, - method: 'get' - }) -} - -export function addSupplierType(data) { - return request({ - url: '/data/supplierType', - method: 'post', - data - }) -} - -export function updateSupplierType(data) { - return request({ - url: '/data/supplierType', - method: 'put', - data - }) -} - -export function changeSupplierTypeStatus(data) { - return request({ - url: '/data/supplierType/changeStatus', - method: 'put', - data - }) -} - -export function delSupplierType(typeIds) { - return request({ - url: '/data/supplierType/' + typeIds, - method: 'delete' - }) -} diff --git a/bms-front/src/views/customersuppliermanagement/supplierinfo/index.vue b/bms-front/src/views/customersuppliermanagement/supplierinfo/index.vue index 2c438112..93f29d16 100644 --- a/bms-front/src/views/customersuppliermanagement/supplierinfo/index.vue +++ b/bms-front/src/views/customersuppliermanagement/supplierinfo/index.vue @@ -166,9 +166,6 @@ - - - @@ -246,7 +243,6 @@ const columnDefs = [ { key: 'weightThreshold', label: '重量阈值' }, { key: 'throwRatio', label: '抛比' }, { key: 'cooperationStartDate', label: '合作开始日期' }, - { key: 'contractStartDate', label: '合同开始时间' }, { key: 'contractEndDate', label: '合同结束时间' }, { key: 'cooperationStatus', label: '合作状态' }, { key: 'channelIds', label: '绑定渠道' }, @@ -320,7 +316,6 @@ const copyColumns = computed(() => [ { key: 'weightThreshold', label: '重量阈值', get: r => (r.weightThreshold === null || r.weightThreshold === undefined ? '' : r.weightThreshold) }, { key: 'throwRatio', label: '抛比', get: r => (r.throwRatio === null || r.throwRatio === undefined ? '' : r.throwRatio) }, { key: 'cooperationStartDate', label: '合作开始日期', get: r => formatDateOnly(r.cooperationStartDate) }, - { key: 'contractStartDate', label: '合同开始时间', get: r => formatDateOnly(r.contractStartDate) }, { key: 'contractEndDate', label: '合同结束时间', get: r => formatDateOnly(r.contractEndDate) }, { key: 'cooperationStatus', label: '合作状态', get: r => formatOption(cooperationStatusOptions.value, r.cooperationStatus) }, { key: 'channelIds', label: '绑定渠道', get: r => channelNames(r.channelIds) }, diff --git a/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue b/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue index ed9eea88..d0bf61cd 100644 --- a/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue +++ b/bms-front/src/views/customersuppliermanagement/supplierinfo/supplieredit/index.vue @@ -161,11 +161,6 @@ - - - - - @@ -695,7 +690,6 @@ function buildEmptyForm() { throwRatio: null, creditEd: null, cooperationStartDate: null, - contractStartDate: null, contractEndDate: null, cooperationStatus: null, channelIds: null, @@ -1033,8 +1027,8 @@ function submitForm() { activeTab.value = 'base' return } - if (form.value.contractStartDate && form.value.contractEndDate && form.value.contractEndDate < form.value.contractStartDate) { - proxy.$modal.msgError('合同结束时间不能早于开始时间') + if (form.value.cooperationStartDate && form.value.contractEndDate && form.value.contractEndDate < form.value.cooperationStartDate) { + proxy.$modal.msgError('合同结束时间不能早于合作开始日期') activeTab.value = 'base' return } @@ -1047,7 +1041,7 @@ function submitForm() { settlementUser: nullIfEmpty(form.value.settlementUser), serviceUserId: nullIfEmpty(form.value.serviceUserId), serviceUser: nullIfEmpty(form.value.serviceUser), - contractStartDate: nullIfEmpty(form.value.contractStartDate), + cooperationStartDate: nullIfEmpty(form.value.cooperationStartDate), contractEndDate: nullIfEmpty(form.value.contractEndDate) } saving.value = true