diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java index bbb18eca..564a4167 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java @@ -23,6 +23,8 @@ public class BaseConstants { public static final String TABLE_BASE_CAR_MAIN = "base_car_main"; /**新增标识*/ public static final String SIGN_CREATE = "create"; + /**邀请注册/授权给某个租户*/ + public static final String INVITE_CREATE = "invite_create"; /**编辑标识*/ public static final String SIGN_UPDATE = "update"; /**默认密码*/ diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/InviterTypeEnum.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/InviterTypeEnum.java new file mode 100644 index 00000000..8947d0c8 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/InviterTypeEnum.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 邀请者类型枚举 + * + * @author vinjor + */ +@AllArgsConstructor +@Getter +public enum InviterTypeEnum { + /** + * 员工邀请 + */ + STAFF("1","员工邀请"), + /** + * 客户邀请 + */ + CUSTOMER("2","客户邀请"); + + /** + * code + */ + private String code; + /** + * 名称 + */ + private String name; + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/PromotionEnum.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/PromotionEnum.java new file mode 100644 index 00000000..b6e70dd9 --- /dev/null +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/PromotionEnum.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.common; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 推广渠道枚举 + * + * @author vinjor + */ +@AllArgsConstructor +@Getter +public enum PromotionEnum { + /** + * 微信小程序 + */ + WeChat("WeChat","微信小程序"); + + /** + * code + */ + private String code; + /** + * 名称 + */ + private String name; + +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/SystemEnum.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/SystemEnum.java index 40e75ac4..ba8b8191 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/common/SystemEnum.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/SystemEnum.java @@ -4,9 +4,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; /** - * Bpm 消息的枚举 + * 系统枚举 * - * @author 芋道源码 + * @author vinjor-m */ @AllArgsConstructor @Getter diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/app/UserCarController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/app/UserCarController.java index 466ae2da..39fda59e 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/app/UserCarController.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/app/UserCarController.java @@ -30,6 +30,21 @@ public class UserCarController { return CommonResult.success(userCarService.getMyCar()); } + + /** + * 授权个人信息到某企业 + * @author PQZ + * @date 11:49 2024/10/12 + **/ + @GetMapping("/empowerUserInfo") + @Operation(summary = "授权个人信息到某企业") + public CommonResult empowerUserInfo(@RequestParam("tenantId") Long tenantId) { + userCarService.empowerUserInfo(tenantId); + return CommonResult.success(true); + } + + + /** * 创建或更新车辆信息 * @@ -63,4 +78,4 @@ public class UserCarController { public CommonResult delById(String id) { return CommonResult.success(userCarService.removeById(id)); } -} \ No newline at end of file +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/BasePromotionService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/BasePromotionService.java index c34384f2..d0fe09ea 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/BasePromotionService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/BasePromotionService.java @@ -22,12 +22,4 @@ public interface BasePromotionService extends IService { * @param page 分页规则 **/ IPage queryListPage(BasePromotionReqVO pageReqVO, Page page); - - /** - * 新增推广记录 - * @author 小李 - * @date 12:26 2024/8/14 - * @param promotionRespVO 新增对象 - **/ - Boolean createPromotion(BasePromotionRespVO promotionRespVO); } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java index 9be61022..f4d7fda0 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java @@ -40,4 +40,12 @@ public interface UserCarService extends IService { * @return java.lang.Object **/ Object vehicleLicenseOCR(String imagePath) throws TencentCloudSDKException; -} \ No newline at end of file + + /** + * 将客户信息授权给某个修理厂 + * @author PQZ + * @date 12:40 2024/10/12 + * @param tenantId 租户id + **/ + void empowerUserInfo(Long tenantId); +} diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/BasePromotionServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/BasePromotionServiceImpl.java index 21b96343..7153e0e5 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/BasePromotionServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/BasePromotionServiceImpl.java @@ -1,6 +1,5 @@ package cn.iocoder.yudao.module.custom.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.iocoder.yudao.module.custom.entity.BasePromotion; import cn.iocoder.yudao.module.custom.mapper.BasePromotionMapper; import cn.iocoder.yudao.module.custom.service.BasePromotionService; @@ -18,7 +17,6 @@ import org.springframework.stereotype.Service; **/ @Service public class BasePromotionServiceImpl extends ServiceImpl implements BasePromotionService { - /** * 分页查询推广记录 * @@ -30,17 +28,4 @@ public class BasePromotionServiceImpl extends ServiceImpl queryListPage(BasePromotionReqVO pageReqVO, Page page) { return baseMapper.queryListPage(pageReqVO, page); } - - /** - * 新增推广记录 - * @author 小李 - * @date 12:26 2024/8/14 - * @param promotionRespVO 新增对象 - **/ - @Override - public Boolean createPromotion(BasePromotionRespVO promotionRespVO){ - BasePromotion basePromotion = new BasePromotion(); - BeanUtil.copyProperties(promotionRespVO, basePromotion); - return baseMapper.insert(basePromotion) > 0; - } } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerMainServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerMainServiceImpl.java index 9e3dce3a..3892b26b 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerMainServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/CustomerMainServiceImpl.java @@ -34,14 +34,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.ObjectUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.common.BaseConstants.*; import static cn.iocoder.yudao.common.DictBaseConstants.DICT_CUS_TYPE; @@ -113,6 +114,8 @@ public class CustomerMainServiceImpl extends ServiceImpl roleCodes = new HashSet<>(); roleCodes.add(dict.getRemark()); permissionApi.assignUserRole(userId, roleCodes); + }else if(INVITE_CREATE.equals(sign)){ + //邀请注册/授权给某个租户 + //查询数据字典,根据客户类型匹配出预设角色code; + DictDataRespDTO dict = dictDataApi.getDictData(DICT_CUS_TYPE, main.getTypeCode()); + if (CUS_TYPE_CORP.equals(main.getTypeCode())) { + //查询当前登录用户所属租户的政企客户部门id(父级部门) + DeptRespDTO parentDept = deptApi.getDeptByName(DEPT_NAME_CORP_NAME); + //在部门表下新增一个部门 + DeptRespDTO deptRespDTO = new DeptRespDTO(); + deptRespDTO.setName(main.getCusName()); + deptRespDTO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + //上级部门为本租户顶级部门 + deptRespDTO.setParentId(parentDept.getId()); + Long deptId = deptApi.saveDept(deptRespDTO); + //客户信息表绑定deptCode + main.setDeptCode(deptId); + }else{ + //私人客户和代办客户归属到默认的部门中 + String deptName = ""; + if(CUS_TYPE_PRIVATE.equals(main.getTypeCode())){ + deptName =DEPT_NAME_PRIVATE_NAME; + }else if(CUS_TYPE_AGENT.equals(main.getTypeCode())){ + deptName = DEPT_NAME_AGENT_NAME; + } + DeptRespDTO parentDept = deptApi.getDeptByName(deptName); + main.setDeptCode(parentDept.getId()); + } + //绑定角色 + Set roleCodes = new HashSet<>(); + roleCodes.add(dict.getRemark()); + permissionApi.assignUserRole(main.getUserId(), roleCodes); } - /*3、保存客户主表信息*/ //暂时写死会员id TODO main.setMemberLevelId("9d4567b7e68803933f4917a4aab6b745"); diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java index 9d49512b..fec606fc 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java @@ -1,25 +1,44 @@ package cn.iocoder.yudao.module.custom.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.UUID; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import cn.iocoder.yudao.common.DictBaseConstants; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.custom.entity.CarMain; +import cn.iocoder.yudao.module.custom.entity.CustomerCar; +import cn.iocoder.yudao.module.custom.entity.CustomerMain; import cn.iocoder.yudao.module.custom.entity.UserCar; import cn.iocoder.yudao.module.custom.mapper.UserCarMapper; +import cn.iocoder.yudao.module.custom.service.CarMainService; +import cn.iocoder.yudao.module.custom.service.CustomerCarService; +import cn.iocoder.yudao.module.custom.service.CustomerMainService; import cn.iocoder.yudao.module.custom.service.UserCarService; -import cn.iocoder.yudao.module.custom.vo.DrivelicenseVO; -import cn.iocoder.yudao.module.custom.vo.UserCarVO; +import cn.iocoder.yudao.module.custom.vo.*; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.util.VehicleLicenseOCR; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import static cn.iocoder.yudao.common.BaseConstants.SIGN_CREATE; + /** * 用户车辆信息表--用户个人录入的 Service 实现类 * @@ -31,6 +50,15 @@ public class UserCarServiceImpl extends ServiceImpl impl @Resource private UserCarMapper userCarMapper; + @Resource + private CustomerMainService customerMainService; + @Resource + private AdminUserApi userApi; + @Resource + private CarMainService carMainService; + @Resource + private CustomerCarService customerCarService; + /** * 创建或更新车辆信息 @@ -80,4 +108,102 @@ public class UserCarServiceImpl extends ServiceImpl impl } return licenseVO; } -} \ No newline at end of file + + /** + * 将客户信息授权给某个修理厂 + * + * @param tenantId 租户id + * @author PQZ + * @date 12:40 2024/10/12 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void empowerUserInfo(Long tenantId) { + /*1、基础数据准备*/ + //获取当前登录用户信息 + Long userId = SecurityFrameworkUtils.getLoginUserId(); + AdminUserRespDTO loginUser = userApi.getUser(userId); + //获取当前登录用户车辆信息 + List carList = getMyCar(); + //需要保存的关联关系 + List saveCustomerCarList = new ArrayList<>(); + //需要保存的车辆信息 + List saveCarList = new ArrayList<>(); + //提前为客户id赋值 + String customerId = UUID.randomUUID().toString().replace("-", ""); + + /*2、数据转换,将用户表关联信息转换成客户表关联信息 */ + //转换客户数据 + CustomerMain customerMain = new CustomerMain(); + customerMain.setId(customerId); + customerMain.setUserId(userId); + customerMain.setCusName(loginUser.getNickname()); + customerMain.setSex(String.valueOf(loginUser.getSex())); + customerMain.setPhoneNumber(loginUser.getMobile()); + customerMain.setTenantId(tenantId); + customerMain.setTypeCode("01"); + customerMain.setDataFrom("04"); + customerMain.setIsHangAccount("0"); + //转换车辆及关联关系数据 + if (CollUtil.isNotEmpty(carList)){ + carList.forEach(item ->{ + CarMain carItem = new CarMain(); + CustomerCar customerCarItem = new CustomerCar(); + String carId = UUID.randomUUID().toString().replace("-", ""); + //车辆信息 + carItem.setId(carId); + carItem.setEngineNumber(item.getEngineNumber()); + carItem.setVin(item.getVin()); + carItem.setLicenseNumber(item.getLicenseNumber()); + carItem.setCarModel(item.getCarModel()); + carItem.setMaintenanceDate(convertToLocalDateTime(item.getMaintenanceDate())); + carItem.setMaintenanceMileage(convertToBigDecimal(item.getMaintenanceMileage())); + carItem.setInspectionDate(convertToLocalDateTime(item.getInspectionDate())); + carItem.setInsuranceDate(convertToLocalDateTime(item.getInsuranceDate())); + carItem.setCheckDate(convertToLocalDateTime(item.getCheckDate())); + carItem.setNextMaintenanceDate(convertToLocalDateTime(item.getNextMaintenanceDate())); + carItem.setNextMaintenanceMileage(convertToBigDecimal(item.getNextMaintenanceMileage())); + carItem.setNextInspectionDate(convertToLocalDateTime(item.getNextInspectionDate())); + carItem.setInsuranceExpiryDate(convertToLocalDateTime(item.getInsuranceExpiryDate())); + carItem.setNextCheckDate(convertToLocalDateTime(item.getNextCheckDate())); + carItem.setCarBrand(item.getCarBrand()); + carItem.setCarNature(item.getCarNature()); + carItem.setCarCategory(item.getCarCategory()); + carItem.setCarRegisterDate(convertToLocalDateTime(item.getCarRegisterDate())); + carItem.setCarLicenseImg(item.getCarLicenseImg()); + //客户与车辆关联关系 + customerCarItem.setCusId(customerId); + customerCarItem.setCarId(carId); + customerCarItem.setIsOwner(item.getIsOwner()); + saveCarList.add(carItem); + saveCustomerCarList.add(customerCarItem); + + }); + } + + /*3、数据保存*/ + //保存客户信息 + customerMainService.save(customerMain); + //保存车辆信息 + carMainService.saveBatch(saveCarList); + //保存客户与车辆关联关系 + customerCarService.saveBatch(saveCustomerCarList); + } + + /* Date转换为LocalDateTime */ + private LocalDateTime convertToLocalDateTime(Date carRegisterDate) { + if (carRegisterDate != null) { + return LocalDateTime.ofInstant(carRegisterDate.toInstant(), ZoneId.systemDefault()); + } + return null; + } + + /* Long转换为BigDecimal */ + private BigDecimal convertToBigDecimal(Long value) { + if (value != null) { + return BigDecimal.valueOf(value); + } + return null; + } + +} diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java index 4354da58..6bc071ad 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/CompanyStaffService.java @@ -1,15 +1,17 @@ package cn.iocoder.yudao.module.staff.service; -import cn.iocoder.yudao.module.staff.entity.CompanyStaff; import cn.iocoder.yudao.module.label.entity.Label; +import cn.iocoder.yudao.module.staff.entity.CompanyStaff; import cn.iocoder.yudao.module.staff.vo.CompanyStaffReqVO; import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO; import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; +import java.util.Date; import java.util.List; /** @@ -110,4 +112,15 @@ public interface CompanyStaffService extends IService { * @date 14:53 2024/8/14 **/ List getRoleList(); + + /** + * 新增推广记录 + * @author vinjor-m + * @date 12:26 2024/8/14 + * @param uniqueCode 推广码 + * @param user 被推广用户 + * @param promotionChannel 推广渠道 + * @param registerTime 被推广用户注册的时间 + **/ + Boolean createPromotion(String uniqueCode, AdminUserDO user, String promotionChannel, Date registerTime); } diff --git a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java index 279499a4..145704c9 100644 --- a/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/staff/service/impl/CompanyStaffServiceImpl.java @@ -4,7 +4,14 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.BaseConstants; import cn.iocoder.yudao.common.CommonErrorCodeConstants; +import cn.iocoder.yudao.common.InviterTypeEnum; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import cn.iocoder.yudao.module.custom.entity.BasePromotion; +import cn.iocoder.yudao.module.custom.service.BasePromotionService; +import cn.iocoder.yudao.module.custom.service.CustomerMainService; +import cn.iocoder.yudao.module.custom.vo.CustomerMainSaveReqVO; import cn.iocoder.yudao.module.label.entity.BusiLabel; import cn.iocoder.yudao.module.label.entity.Label; import cn.iocoder.yudao.module.label.service.BusiLabelService; @@ -24,13 +31,14 @@ import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.context.annotation.Lazy; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -38,10 +46,12 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.Period; import java.time.ZoneId; +import java.util.Date; import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import static cn.iocoder.yudao.common.BaseConstants.INVITE_CREATE; import static cn.iocoder.yudao.framework.common.config.CommonStr.USER_TYPE_STAFF; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -80,6 +90,10 @@ public class CompanyStaffServiceImpl extends ServiceImpl getRoleList() { return roleApi.getRoleList(); } + + /** + * 新增推广记录---忽略租户 + * + * @param uniqueCode 推广码 + * @param user 被推广用户 + * @param promotionChannel 推广渠道 + * @param registerTime 被推广用户注册的时间 + * @author vinjor-m + * @date 12:26 2024/8/14 + **/ + @Override + @TenantIgnore + public Boolean createPromotion(String uniqueCode, AdminUserDO user, String promotionChannel, Date registerTime) { + /*1.先查是否是员工推广 */ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(CompanyStaff::getUniqueCode,uniqueCode); + List staffList = this.list(queryWrapper); + if(!staffList.isEmpty()){ + //员工推广 + CompanyStaff staff = staffList.get(0); + // 插入推广记录 + BasePromotion basePromotion = new BasePromotion(); + basePromotion.setOldUserId(staff.getUserId()); + basePromotion.setOldUserName(staff.getName()); + basePromotion.setPromotionChannel(promotionChannel); + basePromotion.setNewUserId(user.getId()); + basePromotion.setNewUserName(user.getNickname()); + basePromotion.setRegisterTime(registerTime); + basePromotion.setUniqueCode(uniqueCode); + basePromotionService.save(basePromotion); + //取到该员工的租户,以该租户的角度去保存客户数据 + TenantUtils.execute(staff.getTenantId(), () -> { + CustomerMainSaveReqVO saveReqVO = new CustomerMainSaveReqVO(); + saveReqVO.setUserId(user.getId()); + saveReqVO.setPhoneNumber(user.getMobile()); + saveReqVO.setSex(user.getSex().toString()); + saveReqVO.setCusName(user.getNickname()); + //客户类型,统一为私人客户 + saveReqVO.setTypeCode("01"); + //客户来源,统一为04-维修 + saveReqVO.setDataFrom("04"); + //注册方式,统一为自主创建 + saveReqVO.setInviterType("01"); + //邀请者id + saveReqVO.setInviter(staff.getUserId().toString()); + //邀请者类型 + saveReqVO.setInviterType(InviterTypeEnum.STAFF.getCode()); + //邀请注册添加客户 + customerMainService.saveCustomer(saveReqVO,INVITE_CREATE); + }); + }else{ + /*2.不是员工推广,再查是否是客户推广*/ + } + return true; + } } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/controller/WechatLoginController.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/controller/WechatLoginController.java similarity index 92% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/controller/WechatLoginController.java rename to dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/controller/WechatLoginController.java index 3029bdab..81ed8ee1 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/controller/WechatLoginController.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/controller/WechatLoginController.java @@ -1,7 +1,7 @@ -package cn.iocoder.yudao.module.app.wechat.controller; +package cn.iocoder.yudao.module.wechat.controller; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.app.wechat.service.WechatService; +import cn.iocoder.yudao.module.wechat.service.WechatService; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginReqVO; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginRespVO; import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/WechatService.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/WechatService.java similarity index 94% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/WechatService.java rename to dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/WechatService.java index 29280b72..3ad779d2 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/WechatService.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/WechatService.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.app.wechat.service; +package cn.iocoder.yudao.module.wechat.service; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/impl/WechatServiceImpl.java b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/impl/WechatServiceImpl.java similarity index 91% rename from dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/impl/WechatServiceImpl.java rename to dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/impl/WechatServiceImpl.java index 067f087f..7781dca9 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/wechat/service/impl/WechatServiceImpl.java +++ b/dl-module-company/src/main/java/cn/iocoder/yudao/module/wechat/service/impl/WechatServiceImpl.java @@ -1,10 +1,12 @@ -package cn.iocoder.yudao.module.app.wechat.service.impl; +package cn.iocoder.yudao.module.wechat.service.impl; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import cn.iocoder.yudao.common.PromotionEnum; import cn.iocoder.yudao.common.SystemEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.app.wechat.service.WechatService; +import cn.iocoder.yudao.module.staff.service.CompanyStaffService; +import cn.iocoder.yudao.module.wechat.service.WechatService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; @@ -18,6 +20,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -40,6 +43,8 @@ public class WechatServiceImpl implements WechatService { private AdminUserService userService; @Resource private PasswordEncoder passwordEncoder; + @Autowired + private CompanyStaffService companyStaffService; /** * 微信自动登录 * @@ -159,8 +164,10 @@ public class WechatServiceImpl implements WechatService { wxUser.setUsername(user.getUsername()); wxUser.setNickname(user.getNickname()); } + /*如果携带了邀请码,需要插入邀请记录并自动复制用户信息到邀请者的租户下 */ if(!StringUtils.isEmpty(inviteId)){ - //那邀请者的码查邀请者的信息 + //邀请注册,自动注册客户信息 + companyStaffService.createPromotion(inviteId,wxUser, PromotionEnum.WeChat.getCode(), new Date()); } return wxUser; } diff --git a/dl-module-knowledge/src/main/java/cn/iocoder/yudao/module/knowledge/constants/Result.java b/dl-module-knowledge/src/main/java/cn/iocoder/yudao/module/knowledge/constants/Result.java index c14bc477..89636c7b 100644 --- a/dl-module-knowledge/src/main/java/cn/iocoder/yudao/module/knowledge/constants/Result.java +++ b/dl-module-knowledge/src/main/java/cn/iocoder/yudao/module/knowledge/constants/Result.java @@ -15,6 +15,9 @@ public class Result implements Serializable { public Result() { } + public Result(Object o, String 文件不能为空) { + } + public Integer getCode() { return this.code; } diff --git a/dl-module-repair/pom.xml b/dl-module-repair/pom.xml index d474358e..c28df541 100644 --- a/dl-module-repair/pom.xml +++ b/dl-module-repair/pom.xml @@ -26,10 +26,15 @@ yudao-module-system-biz ${revision} + + com.deepoove + poi-tl + 1.10.0 + 8 8 - \ No newline at end of file + diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java index bac8b0d1..8108925a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.security.config.SecurityProperties; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.app.vo.WxLoginBody; -import cn.iocoder.yudao.module.app.wechat.service.WechatService; +import cn.iocoder.yudao.module.wechat.service.WechatService; import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginRespVO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.service.auth.AdminAuthService; diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java index b2b0da1a..97113d61 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/controller/admin/DlRepairTicketsController.java @@ -12,14 +12,16 @@ import io.swagger.v3.oas.annotations.Operation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** * 维修工单表(DlRepairTickets)表控制层 + * * @author 小李 * @date 18:21 2024/9/13 -**/ + **/ @RestController @RequestMapping("/repair/tickets") public class DlRepairTicketsController { @@ -29,16 +31,18 @@ public class DlRepairTicketsController { @Resource private DlRepairTicketsService dlRepairTicketsService; + + /** * 维修工单表 新增 * + * @param ticketsRespVO 新增对象 * @author 小李 * @date 11:33 2024/9/20 - * @param ticketsRespVO 新增对象 - **/ + **/ @PostMapping("/create") @Operation(summary = "维修工单表 新增") - public CommonResult createTicket(@RequestBody DlRepairTicketsRespVO ticketsRespVO){ + public CommonResult createTicket(@RequestBody DlRepairTicketsRespVO ticketsRespVO) { dlRepairTicketsService.createTickets(ticketsRespVO); return CommonResult.ok(); } @@ -46,17 +50,17 @@ public class DlRepairTicketsController { /** * 维修工单表 分页 * + * @param repairTicketsReqVO 查询对象 + * @param pageNo 页码 + * @param pageSize 条数 * @author 小李 * @date 20:51 2024/9/20 - * @param repairTicketsReqVO 查询对象 - * @param pageNo 页码 - * @param pageSize 条数 - **/ + **/ @GetMapping("/page") @Operation(summary = "维修工单表 分页") public CommonResult getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, - @RequestParam(value = "pageNo", defaultValue = "1")Integer pageNo, - @RequestParam(value = "pageSize", defaultValue = "10")Integer pageSize){ + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNo, pageSize); return success(dlRepairTicketsService.getTicketsPage(repairTicketsReqVO, page)); } @@ -64,26 +68,26 @@ public class DlRepairTicketsController { /** * 获得一个工单的详细信息 * + * @param id 工单ID * @author 小李 * @date 16:05 2024/9/21 - * @param id 工单ID - **/ + **/ @GetMapping("/get") @Operation(summary = "查看一个工单的详细信息") - public CommonResult getTicketsById(@RequestParam("id") String id){ + public CommonResult getTicketsById(@RequestParam("id") String id) { return success(dlRepairTicketsService.getTicketsById(id)); } /** * 维修工单表 作废 * + * @param repairTicketsReqVO 工单对象 * @author 小李 * @date 19:46 2024/9/22 - * @param repairTicketsReqVO 工单对象 - **/ + **/ @PostMapping("/void") @Operation(summary = "维修工单表 作废") - public CommonResult setTicketsVoid(@RequestBody DlRepairTicketsReqVO repairTicketsReqVO){ + public CommonResult setTicketsVoid(@RequestBody DlRepairTicketsReqVO repairTicketsReqVO) { dlRepairTicketsService.setTicketsVoid(repairTicketsReqVO); return CommonResult.ok(); } @@ -91,27 +95,63 @@ public class DlRepairTicketsController { /** * 维修工单表 结算 * + * @param repairTicketsRespVO 工单 * @author 小李 * @date 8:50 2024/9/23 - * @param repairTicketsRespVO 工单 - **/ + **/ @PostMapping("/paid") @Operation(summary = "维修工单表 结算") - public CommonResult setTicketsPaid(@RequestBody DlRepairTicketsRespVO repairTicketsRespVO){ + public CommonResult setTicketsPaid(@RequestBody DlRepairTicketsRespVO repairTicketsRespVO) { dlRepairTicketsService.setTicketsPaid(repairTicketsRespVO); return CommonResult.ok(); } +// /** +// * 维修工单表 导出 +// * +// * @param file 导出文件 +// * @author lzt +// * @date 2024年10月11日 +// */ +// @PostMapping("/print") +// @Operation(summary = "维修工单表 导出") +// public ResponseEntity> printDocument(@RequestParam("file") MultipartFile file) { +// if (file.isEmpty()) { +// return ResponseEntity.badRequest().body(new Result<>(null, "文件不能为空")); +// } +// +// try { +// FileDO fileInfo = fileService.createFileDetail(file.getOriginalFilename(), "/ticket", IoUtil.readBytes(file.getInputStream())); +// return ResponseEntity.ok(new Result<>(fileInfo, "文件上传成功")); +// } catch (Exception e) { +// return ResponseEntity.status(500).body(new Result<>(null, "文件上传失败: " + e.getMessage())); +// } +// } + + /** + * 维修工单打印 + * + * @param response HttpServletResponse + * @param id 维修工单id + * @author PQZ + * @date 13:48 2024/10/12 + **/ + @GetMapping("/print/{id}") + @Operation(summary = "维修工单打印") + public void printDocument(HttpServletResponse response, @PathVariable String id) { + dlRepairTicketsService.print(response,id); + } + /** * 客户信息和车辆信息 新增、修改 * + * @param customerAndCarVO 用户信息和车辆信息 * @author 小李 * @date 9:25 2024/10/8 - * @param customerAndCarVO 用户信息和车辆信息 - **/ + **/ @PostMapping("/updateUserAndCar") @Operation(summary = "客户信息和车辆信息 新增、修改") - public CommonResult updateCustomerAndCar(@RequestBody CustomerAndCarVO customerAndCarVO){ + public CommonResult updateCustomerAndCar(@RequestBody CustomerAndCarVO customerAndCarVO) { dlRepairTicketsService.updateCustomerAndCar(customerAndCarVO); return CommonResult.ok(); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java index b56aa449..78ef350a 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/DlRepairTicketsService.java @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import javax.servlet.http.HttpServletResponse; + /** * 针对表【dl_repair_tickets(维修工单表)】的数据库操作Service * @@ -19,57 +21,67 @@ public interface DlRepairTicketsService extends IService { /** * 维修工单表 新增 * + * @param ticketsRespVO 新增对象 * @author 小李 * @date 11:33 2024/9/20 - * @param ticketsRespVO 新增对象 **/ void createTickets(DlRepairTicketsRespVO ticketsRespVO); /** * 维修工单表 分页 * + * @param repairTicketsReqVO 查询对象 * @author 小李 * @date 20:51 2024/9/20 - * @param repairTicketsReqVO 查询对象 **/ IPage getTicketsPage(DlRepairTicketsReqVO repairTicketsReqVO, Page page); /** * 获得一个工单的详细信息 * + * @param id 工单ID * @author 小李 * @date 16:05 2024/9/21 - * @param id 工单ID **/ DlRepairTicketsRespVO getTicketsById(String id); /** * 维修工单表 作废 * + * @param repairTicketsReqVO 工单对象 * @author 小李 * @date 19:46 2024/9/22 - * @param repairTicketsReqVO 工单对象 **/ void setTicketsVoid(DlRepairTicketsReqVO repairTicketsReqVO); /** * 维修工单表 结算 * + * @param repairTicketsRespVO 工单 * @author 小李 * @date 8:50 2024/9/23 - * @param repairTicketsRespVO 工单 **/ void setTicketsPaid(DlRepairTicketsRespVO repairTicketsRespVO); /** * 客户信息和车辆信息 新增、修改 * + * @param customerAndCarVO 用户信息和车辆信息 * @author 小李 * @date 9:25 2024/10/8 - * @param customerAndCarVO 用户信息和车辆信息 **/ void updateCustomerAndCar(CustomerAndCarVO customerAndCarVO); + /** + * 打印工单 + * + * @param response HttpServletResponse + * @param id String + * @author PQZ + * @date 14:00 2024/10/12 + **/ + void print(HttpServletResponse response, String id); + /** * 分类查询工单分页 * diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index ea157737..7bfa842d 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -38,6 +38,7 @@ import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem; import cn.iocoder.yudao.module.tickets.mapper.DlRepairTicketsMapper; import cn.iocoder.yudao.module.tickets.service.DlRepairTicketsService; import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService; +import cn.iocoder.yudao.module.tickets.tools.WordUtil; import cn.iocoder.yudao.module.tickets.vo.CustomerAndCarVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO; import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsRespVO; @@ -47,16 +48,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; import org.springframework.context.annotation.Lazy; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.print.Doc; +import javax.servlet.http.HttpServletResponse; +import java.io.FileOutputStream; +import java.io.InputStream; import java.math.BigDecimal; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -347,6 +354,34 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl params = new HashMap<>(); + params.put("jobNumber","123456789"); + String fileName = "结算单.docx"; + String tmpPath = "D:\\"+fileName; + try{ + InputStream inputStream = XWPFTemplate.class.getResourceAsStream("/templates/gdmb.docx"); + XWPFTemplate template = XWPFTemplate.compile(inputStream); + template.render(params); + FileOutputStream fos = new FileOutputStream(tmpPath); + template.write(fos); + fos.flush(); + template.close(); + WordUtil.down(response,tmpPath,fileName); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** * 分类查询工单分页 * diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java new file mode 100644 index 00000000..dbcda8fd --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/TOperaDocRequestUtil.java @@ -0,0 +1,94 @@ +//package cn.iocoder.yudao.module.tickets.tools; +// +//import cn.iocoder.yudao.module.infra.service.file.FileService; +//import cn.iocoder.yudao.module.knowledge.constants.Result; +//import cn.iocoder.yudao.module.tickets.controller.admin.DlRepairTicketsController; +//import cn.iocoder.yudao.module.tickets.vo.DlRepairTicketsReqVO; +//import com.deepoove.poi.XWPFTemplate; +//import com.deepoove.poi.config.Configure; +//import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy; +//import com.tencentcloudapi.ess.v20201111.models.FileInfo; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.http.ResponseEntity; +//import org.springframework.mock.web.MockMultipartFile; +//import org.springframework.stereotype.Component; +//import org.springframework.web.multipart.MultipartFile; +// +//import javax.annotation.Resource; +//import java.io.ByteArrayInputStream; +//import java.io.ByteArrayOutputStream; +//import java.io.FileNotFoundException; +//import java.io.IOException; +//import java.util.HashMap; +// +// +///** +// * 工单导出工具类 +// * @author lzt +// * @date 9:27 2024年10月11日 +// */ +//@Component(value = "TOperaDocRequestUtil" ) +//public class TOperaDocRequestUtil { +// +// @Resource +// private FileService fileService; +// @Value("${minio.bucketName:dev}") +// private String bucketName; +// +// public TOperaDocRequestUtil() throws FileNotFoundException { +// } +// +// +// private static String TEMPLATE_PATH = "/templates/gdmb.docx"; +// +// @Autowired +// private DlRepairTicketsController dlRepairTicketsController; +// +// public FileInfo export(DlRepairTicketsReqVO request) throws IOException { +// String fileStr = TEMPLATE_PATH; +// +// if (fileStr != null) { +// byte[] inputStream = fileService.downloadFile(bucketName, fileStr); +// +// // 数据循环填充 +// LoopRowTableRenderPolicy loopRowTableRenderPolicy = new LoopRowTableRenderPolicy(); +// Configure configure = Configure.builder().bind("czTable", loopRowTableRenderPolicy).build(); +// +// // word导出到本地 +// MultipartFile convert = null; +// if (fileStr.contains("gdmb.docx")) { +// // 操作模板文件-数据填充 +// XWPFTemplate template = XWPFTemplate.compile(String.valueOf(inputStream), configure).render( +// new HashMap() {{ +// // 填充数据 TODO +// //put("requestData", request); +// +// }} +// ); +// ByteArrayOutputStream outputStreamWord = new ByteArrayOutputStream();; +// template.writeAndClose(outputStreamWord); +// //IConverter converter = LocalConverter.builder().build(); +// byte[] bytes = outputStreamWord.toByteArray(); +// ByteArrayInputStream inputStreamWord = new ByteArrayInputStream(bytes); +// +// ByteArrayOutputStream outputStreamPdf = new ByteArrayOutputStream(); +// +// //converter.convert(inputStreamWord).as(DocumentType.DOCX).to(outputStreamPdf).as(DocumentType.PDF).execute(); +// byte[] bytesPdf = outputStreamPdf.toByteArray(); +// ByteArrayInputStream inputStreamPdf = new ByteArrayInputStream(bytesPdf); +// +// // convert = new MultipartFile(fileStr.replace(".docx", ".pdf"), "application/pdf", inputStreamPdf.readAllBytes()); +// convert = new MockMultipartFile("gdmb.pdf", bytes); +// } +// ResponseEntity> responseEntity = dlRepairTicketsController.printDocument(convert); +// +// // 获取 Result 对象 +// Result fileupload = responseEntity.getBody(); +// if (fileupload != null) { +// return fileupload.getData(); +// } +// } +// return null; +// } +//} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java new file mode 100644 index 00000000..5bb579db --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/tools/WordUtil.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.tickets.tools; + +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.FileInputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +/** + * POI-TL工具类 + * @author PQZ + * @date 13:49 2024/10/12 +**/ +public class WordUtil { + /**模版路径*/ + public static String TEMPLATE_PATH = "/templates/gdmb.docx"; + + public static void down(HttpServletResponse response, String filePath, String fileName) { + String encodeName = null; + try { + encodeName = encodeStr(fileName); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + response.addHeader("Access-Control-Allow-Origin", "*"); + response.addHeader("Access-Control-Expose-Headers", "Content-Disposition,download-filename"); + response.setHeader("Content-disposition", "attachment; filename=" + encodeName + ";" + "filename*=" + "utf-8''" + encodeName); + response.setHeader("download-filename", encodeName); + try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath)); + // 输出流 + BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());) { + byte[] buff = new byte[1024]; + int len = 0; + while ((len = bis.read(buff)) > 0) { + bos.write(buff, 0, len); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 编码工具方法 + */ + public static String encodeStr(String fileName) throws UnsupportedEncodingException { + return URLEncoder.encode(fileName,"UTF-8"); + } + +} diff --git a/dl-module-repair/src/main/resources/templates/gdmb.docx b/dl-module-repair/src/main/resources/templates/gdmb.docx new file mode 100644 index 00000000..6d061efa Binary files /dev/null and b/dl-module-repair/src/main/resources/templates/gdmb.docx differ diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java index 85aa8121..54cf38ca 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java @@ -5,14 +5,14 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.io.FileUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClient; -import cn.iocoder.yudao.module.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; -import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileCreateReqVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.infra.dal.mysql.file.FileMapper; +import cn.iocoder.yudao.module.infra.framework.file.core.client.FileClient; +import cn.iocoder.yudao.module.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; +import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils; import lombok.SneakyThrows; import org.springframework.stereotype.Service; @@ -144,5 +144,4 @@ public class FileServiceImpl implements FileService { return BeanUtils.toBean(presignedObjectUrl, FilePresignedUrlRespVO.class, object -> object.setConfigId(fileClient.getId())); } - } diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java index bb12285e..f6bd0795 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApi.java @@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; -import javax.validation.Valid; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -52,12 +51,19 @@ public interface AdminUserApi { AdminUserRespDTO getUserByOpenId(String openId,String tenantId); /** - * 通过用户 登录账户 查询用户 + * 通过用户 登录账户 查询用户---自动拼租户 * * @param username 用户登录账户 * @return 用户对象信息 */ AdminUserRespDTO getUserByUsername(String username); + /** + * 通过用户 登录账户 查询用户---不带租户 + * + * @param username 用户登录账户 + * @return 用户对象信息 + */ + AdminUserRespDTO getUserByUsernameNoTenantId(String username); /** * 通过用户 ID 查询用户下属 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java index a7bf43c0..719b2e4c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/user/AdminUserApiImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; @@ -80,7 +81,7 @@ public class AdminUserApiImpl implements AdminUserApi { } /** - * 通过用户 登录账户 查询用户 + * 通过用户 登录账户 查询用户---自动拼租户 * * @param username 用户登录账户 * @return 用户对象信息 @@ -90,6 +91,18 @@ public class AdminUserApiImpl implements AdminUserApi { AdminUserDO user = userService.getUserByUsername(username); return BeanUtils.toBean(user, AdminUserRespDTO.class); } + /** + * 通过用户 登录账户 查询用户---不带租户 + * + * @param username 用户登录账户 + * @return 用户对象信息 + */ + @Override + @TenantIgnore + public AdminUserRespDTO getUserByUsernameNoTenantId(String username) { + AdminUserDO user = userService.getUserByUsernameNoTenantId(username); + return BeanUtils.toBean(user, AdminUserRespDTO.class); + } @Override public List getUserListBySubordinate(Long id) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index a1c4b266..a1b23b8d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -120,6 +120,13 @@ public interface AdminUserService { * @return 用户对象信息 */ AdminUserDO getUserByUsername(String username); + /** + * 通过用户名查询用户---不带租户ID + * + * @param username 用户名 + * @return 用户对象信息 + */ + AdminUserDO getUserByUsernameNoTenantId(String username); /** * 通过手机号获取用户 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index cf55e617..0706cae2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -10,6 +10,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; import cn.iocoder.yudao.module.infra.api.config.ConfigApi; import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; @@ -278,6 +280,15 @@ public class AdminUserServiceImpl implements AdminUserService { return userMapper.selectByUsername(username); } + @Override + @TenantIgnore + public AdminUserDO getUserByUsernameNoTenantId(String username) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .eq(AdminUserDO::getUsername,username) + .isNull(TenantBaseDO::getTenantId); + return userMapper.selectOne(queryWrapper); + } + @Override public AdminUserDO getUserByMobile(String mobile) { return userMapper.selectByMobile(mobile); diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 444015e0..4ed54734 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -237,6 +237,8 @@ yudao: - /admin-api/rescue/driverLogin - /admin-api/rescuePayApi/payNotify - /admin-api/payApi/payNotify + - /repair/tickets/print/** + - /admin-api/repair/tickets/print/** websocket: enable: true # websocket的开关 path: /infra/ws # 路径 @@ -298,6 +300,8 @@ yudao: - /admin-api/payApi/payNotify - /admin-api/base/notice/** - /app-api/** #小程序端接口,不区分租户 + - /repair/tickets/print/** + - /admin-api/repair/tickets/print/** ignore-tables: - system_tenant - system_tenant_package @@ -345,6 +349,7 @@ yudao: - system_users - dl_base_notice - base_user_car + - base_car_brand ignore-caches: - permission_menu_ids - oauth_client diff --git a/yudao-server/src/main/resources/templates/gdmb.docx b/yudao-server/src/main/resources/templates/gdmb.docx new file mode 100644 index 00000000..6d061efa Binary files /dev/null and b/yudao-server/src/main/resources/templates/gdmb.docx differ diff --git a/数据库设计/蓝安集团一体化平台.pdma.json b/数据库设计/蓝安集团一体化平台.pdma.json index 16349417..afd629b3 100644 --- a/数据库设计/蓝安集团一体化平台.pdma.json +++ b/数据库设计/蓝安集团一体化平台.pdma.json @@ -4,7 +4,7 @@ "avatar": "", "version": "4.9.2", "createdTime": "2024-10-9 10:34:15", - "updatedTime": "2024-10-11 14:30:48", + "updatedTime": "2024-10-12 13:40:15", "dbConns": [], "profile": { "default": { @@ -683,7 +683,7 @@ "optionsFetcher": "" } }, - "menuWidth": "298px" + "menuWidth": "273px" }, "entities": [ { @@ -4392,15 +4392,15 @@ "sysProps": {} }, { - "id": "2533579C-DC43-418B-BA5B-ACA680FFE43B", + "id": "672A2E12-DFC6-4168-8722-F92BE2394498", "env": { "base": { "nameSpace": "", "codeRoot": "" } }, - "defKey": "dl_user_car", - "defName": "用户车辆信息表--用户个人录入的", + "defKey": "dl_car_main", + "defName": "车辆信息表", "comment": "", "properties": { "partitioned by": "(date string)", @@ -4550,30 +4550,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "extProps": {}, "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "id": "28F36101-AEFC-453C-9269-66087B95FCA3", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "uiHint": null - }, - { - "defKey": "user_id", - "defName": "用户ID", - "comment": "", - "type": "VARCHAR", - "len": 50, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "domain": "", - "id": "C524273C-D333-45EF-97B7-6199F5E59A9C" + "id": "5CD491F7-7865-4E43-8104-9DDA572B8F27", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "engine_number", @@ -4587,12 +4568,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "21492027-C8C2-44DD-A0A0-A1700ADB2583", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "uiHint": null + "id": "F4065C27-6639-46D3-930D-8392622581D5", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "vin", @@ -4606,12 +4586,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "A67FBEAD-8AE4-4BBE-940A-E62A8043A39A", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "uiHint": null + "id": "A7320063-A151-4213-B963-E2B201DD9B47", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "license_number", @@ -4625,12 +4604,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "A042006B-6C01-4531-A3FC-ABF1FB39DCEB", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "uiHint": null + "id": "DF1704E9-56A5-4CEA-AC48-0EE153BA2DFB", + "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { "defKey": "car_model", @@ -4644,12 +4622,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "B1C33B09-53B7-4434-9B99-0561EE278BB7", - "uiHint": null + "id": "4459097C-6CA6-40E3-83F8-8C0B687AA82C" }, { "defKey": "maintenance_date", @@ -4663,12 +4640,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "8B9BC4B0-CB73-4252-8A59-2BDAA0499673", - "uiHint": null + "domain": "", + "id": "2F228307-A85F-4E6D-B520-58BF92E95990" }, { "defKey": "maintenance_mileage", @@ -4682,12 +4658,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, - "domain": null, - "id": "F8855F6F-7BD6-43F9-A7CF-B8320DE8E201", - "uiHint": null + "domain": "", + "id": "563BB12D-EDC8-4276-9F70-6AB5ACFE6CE8" }, { "defKey": "inspection_date", @@ -4701,12 +4676,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "668C5D66-52F5-4173-AECC-15CFE12D9950", - "uiHint": null + "domain": "", + "id": "CDBA2BDA-DDEA-44E7-8968-28D452D7A6A0" }, { "defKey": "insurance_date", @@ -4720,12 +4694,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "6D722404-3BB1-467A-9F26-05574F668D50", - "uiHint": null + "domain": "", + "id": "FA65B1B6-E92E-409A-84A8-523191590F39" }, { "defKey": "check_date", @@ -4739,12 +4712,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "4174627F-5310-45DF-843A-12CB5C40EC14", - "uiHint": null + "domain": "", + "id": "8651550F-72E6-4AEB-AF77-34CCEEC31C74" }, { "defKey": "next_maintenance_date", @@ -4758,12 +4730,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "4DD0D987-24F8-4722-8408-F8D787DA4757", - "uiHint": null + "domain": "", + "id": "F0BCA0D8-9DA7-4F54-808F-49007D8FF99D" }, { "defKey": "next_maintenance_mileage", @@ -4777,12 +4748,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811", "extProps": {}, - "domain": null, - "id": "DBB774B0-B5BD-44EB-930B-B176E8E5B219", - "uiHint": null + "domain": "", + "id": "24C0D5F6-8B8D-4C9F-AC1F-78CE0CD22529" }, { "defKey": "next_inspection_date", @@ -4796,12 +4766,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "26E51722-2742-4A3B-9990-57F12307EDB8", - "uiHint": null + "domain": "", + "id": "7B79E6B3-8272-4C4C-A352-85EFB9256B52" }, { "defKey": "insurance_expiry_date", @@ -4815,12 +4784,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "9809F670-AE47-496F-85C6-1CB660A3CD15", - "uiHint": null + "domain": "", + "id": "A34B1DB4-66B9-4E6C-8D66-F5E9EBE381B2" }, { "defKey": "next_check_date", @@ -4834,12 +4802,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "7956503F-2BF7-464F-9419-EAEF4362F59A", - "uiHint": null + "domain": "", + "id": "8732690F-55C1-4A4F-A026-723FC1BAE59E" }, { "defKey": "car_brand", @@ -4853,12 +4820,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "17827450-9F97-4ACD-B817-5877452922EB", - "uiHint": null + "id": "31E45E99-2C45-4627-AC6E-8CDE8F0312BE" }, { "defKey": "car_nature", @@ -4876,8 +4842,7 @@ "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "2E13CED6-FDAB-432B-A1F1-117515DE8EBF", - "uiHint": null + "id": "E230657A-8C40-4F8B-95C0-0B824A1EE519" }, { "defKey": "car_register_date", @@ -4891,12 +4856,11 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", "extProps": {}, - "domain": null, - "id": "76B5EA42-E05A-4526-8A17-75B45837B230", - "uiHint": null + "domain": "", + "id": "6D4D9E61-135A-4E1C-A77F-E466F9303836" }, { "defKey": "car_license_img", @@ -4910,18 +4874,17 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": false, - "refDict": null, + "refDict": "", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", "extProps": {}, "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "id": "B264CB39-9C69-4ECD-A362-01A917912B9C", - "uiHint": null + "id": "0A7D4698-AD5C-4F1D-B3C7-6AEA643A13C4" }, { "defKey": "deleted", "defName": "删除状态删除标志", "comment": "", - "domain": null, + "domain": "", "type": "BIT", "len": "1", "scale": "", @@ -4930,9 +4893,9 @@ "autoIncrement": false, "defaultValue": "0", "hideInGraph": true, - "refDict": null, - "uiHint": null, - "id": "03202707-9022-433E-9989-94D1A213AFE9", + "refDict": "", + "uiHint": "", + "id": "89381BE4-5F56-49DE-BDF7-4A7B3FD763C6", "baseType": "A33DC895-0EF9-49E1-BBFF-53273522C6D1" }, { @@ -4941,16 +4904,16 @@ "comment": "", "domain": "16120F75-6AA7-4483-868D-F07F511BB081", "type": "", - "len": "", + "len": 32, "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": true, - "refDict": null, - "uiHint": null, - "id": "815912A4-86BE-4262-A9AC-AC3E0F42768E", + "refDict": "", + "uiHint": "", + "id": "8EDD6F2A-D860-4D64-A13C-0B66BBE1903C", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { @@ -4966,9 +4929,9 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": true, - "refDict": null, - "uiHint": null, - "id": "CEFA5C82-0877-4BE6-AB60-E925F26BCB03", + "refDict": "", + "uiHint": "", + "id": "07977F15-4FD1-4CAB-A7D4-FD9966557BD1", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" }, { @@ -4977,16 +4940,16 @@ "comment": "", "domain": "16120F75-6AA7-4483-868D-F07F511BB081", "type": "", - "len": "", + "len": 32, "scale": "", "primaryKey": false, "notNull": false, "autoIncrement": false, "defaultValue": "", "hideInGraph": true, - "refDict": null, - "uiHint": null, - "id": "FE8392A3-36DC-44CD-8CCF-1B39C24BC26E", + "refDict": "", + "uiHint": "", + "id": "8F89557B-4A46-441F-A638-799B7C4250A0", "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64" }, { @@ -5002,9 +4965,9 @@ "autoIncrement": false, "defaultValue": "", "hideInGraph": true, - "refDict": null, - "uiHint": null, - "id": "5ECFECD6-F854-4981-AF02-33FFC9A94C75", + "refDict": "", + "uiHint": "", + "id": "27B603FD-BBD1-4A2A-A8DF-858FC1EDA69E", "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098" } ], @@ -27202,1777 +27165,6 @@ "correlations": [], "indexes": [], "type": "P" - }, - { - "id": "772EE938-76C1-4EEE-ACF8-DD0722761783", - "defKey": "base_car_main", - "defName": "车辆信息表", - "comment": "", - "properties": {}, - "fields": [ - { - "defKey": "id", - "defName": "主键标识", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": true, - "notNull": true, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "8B8EAE7C-9C89-42F6-960C-E5F517F2F253", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "engine_number", - "defName": "发动机号码", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "A5775ED7-49C1-4A99-B628-8323BA25FC99", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "vin", - "defName": "车架号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "49A45A2A-776A-4417-B442-BA473B8750E4", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "license_number", - "defName": "车牌号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "DD04B413-4A45-4FEB-A3A7-B219A84BE35F", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_model", - "defName": "车辆型号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "C8DDB464-0117-4843-82EB-35B1B97E7E74", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "maintenance_date", - "defName": "保养日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "D628FE91-5BD8-47E7-81C1-E08631024012", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "maintenance_mileage", - "defName": "保养里程", - "comment": "", - "domain": "", - "type": "DECIMAL", - "len": 10, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "DAA056D5-07D4-41C9-87F3-AA7B3D1326AD", - "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "inspection_date", - "defName": "年检日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "E528864F-8C8C-46EB-8A38-DAEEC7BE822E", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "insurance_date", - "defName": "保险日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "167ADAEE-261F-439F-9DD4-44F302A556C0", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "check_date", - "defName": "二级维护时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "61B03ED8-3DE5-43BF-B4C4-AA5B0CF29614", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_maintenance_date", - "defName": "下次保养日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "45194541-EE1B-4BEC-8F7A-F8D981919023", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_maintenance_mileage", - "defName": "下次保养里程", - "comment": "", - "domain": "", - "type": "DECIMAL", - "len": 10, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "AB51F7D8-FD57-4BCA-84CA-2ACB4561B765", - "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_inspection_date", - "defName": "下次年检日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "6C0352A9-DFFE-4D2A-9F04-80D4F50E7CF0", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "insurance_expiry_date", - "defName": "保险到期日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "349BF753-18FF-42CE-B8BF-CCAFBB2E4E6E", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_check_date", - "defName": "下次二级维护时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "13A9B0B2-6DF8-486D-9487-2D67E3459B3F", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_brand", - "defName": "车辆品牌", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "BC100EB7-E78F-4736-B6B0-C240FA417271", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_nature", - "defName": "车辆性质:营运 非营运等", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "9AD41820-7FE9-4D33-A87C-D8011CE544FB", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_category", - "defName": "车辆类别:私家车 货车 教练车 公务车 出租车", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "753530E7-71EF-4895-A89A-1C246E34756A", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "B5325CB8-0051-48A5-8025-9B73949D5AFB", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_register_date", - "defName": "车辆注册日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "35AC9D59-E54E-4803-BBC8-2D75DFF926A2", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_license_img", - "defName": "行驶证图片", - "comment": "", - "domain": "AA4D5F74-732E-426C-A639-8842B4BC52B2", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "87682E41-4218-4715-B630-72A4C63029C1", - "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "recently_handled_business", - "defName": "最近办理业务", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "615269F6-ECFF-4AAD-B8E6-81C374E853F6", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "recently_handle_business_time", - "defName": "最近办理业务的时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "DADD1EE0-937D-4343-A153-0B546B66CE84", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_brand_input", - "defName": "车辆品牌(输入框)", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "DE7B4364-7D7A-4704-A99F-A58BA762816B", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_model_input", - "defName": "车辆型号(输入框)", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "353AA6C4-EE39-4F86-91C4-106DB0B7A377", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "deleted", - "defName": "删除状态删除标志", - "comment": "", - "domain": "F8C1B685-B82C-442F-BF3C-EF01A3884A07", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": true, - "autoIncrement": false, - "defaultValue": "b'0'", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "8F600CCD-F791-4730-8DA5-B78BD8837682", - "baseType": "A33DC895-0EF9-49E1-BBFF-53273522C6D1", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "creator", - "defName": "创建人", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "C8BAF9A3-A0F3-4E2A-938D-A9E366D096FC", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "create_time", - "defName": "创建时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "B140F7B6-0C1E-49F2-991B-DCD4688071F8", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "updater", - "defName": "更新人", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "F0A71CB6-F7E6-4405-AD32-877FF4F7FB1E", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "update_time", - "defName": "更新时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "C95D0BEB-A6DB-4935-AA7F-561D3E45BC1A", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "tenant_id", - "defName": "租户号", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "B7215C87-91A2-4028-8855-F905520C6798", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - } - ], - "indexes": [], - "sysProps": { - "nameTemplate": "{defKey}[{defName}]" - }, - "headers": [ - { - "freeze": false, - "refKey": "hideInGraph", - "hideInGraph": true - }, - { - "freeze": true, - "refKey": "defKey", - "hideInGraph": false - }, - { - "freeze": true, - "refKey": "defName", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "primaryKey", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "notNull", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "autoIncrement", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "domain", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "type", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "len", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "scale", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "comment", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "refDict", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "defaultValue", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "isStandard", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "uiHint", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "extProps", - "hideInGraph": true - } - ], - "correlations": [], - "notes": {} - }, - { - "id": "210BCD3A-6DAF-49F8-BF88-7E65D2B2FEEF", - "defKey": "base_user_car", - "defName": "用户车辆信息表--用户个人录入的", - "comment": "", - "properties": {}, - "fields": [ - { - "defKey": "id", - "defName": "主键标识", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": true, - "notNull": true, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "CA92563B-805C-42C9-B5EF-DA4EEFAC24E3", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "user_id", - "defName": "用户ID", - "comment": "", - "type": "VARCHAR", - "len": 50, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "domain": "", - "id": "043E95EA-52A2-4C8E-B275-5394988C4D30" - }, - { - "defKey": "engine_number", - "defName": "发动机号码", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "186DE97E-5CB5-4423-9927-397D36C9480F", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "vin", - "defName": "车架号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "E1480D07-C19C-4616-80D8-381F72435C2E", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "license_number", - "defName": "车牌号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "E4D35083-436F-4A66-A73B-6D6D11C54665", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_brand", - "defName": "车辆品牌", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "5DA90757-CAA5-42BB-90A2-669E7FE4C8A7", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_model", - "defName": "车辆型号", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "90B12816-BA4D-4B5A-BA33-7E2B4C7C0680", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_nature", - "defName": "车辆性质:营运 非营运等", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "47248DC7-67D0-40E6-9A8E-81F972380F78", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_category", - "defName": "车辆类别:私家车 货车 教练车 公务车 出租车", - "comment": "", - "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "844952D5-31B1-4EA1-AC65-FD69E3610AAB", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_license_img", - "defName": "行驶证图片", - "comment": "", - "domain": "AA4D5F74-732E-426C-A639-8842B4BC52B2", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "1B534D4B-045D-4130-8E83-FE3643E66E88", - "baseType": "B17BDED3-085F-40E1-9019-3B79CF2BF075", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "car_register_date", - "defName": "车辆注册日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "A6532996-DAB2-4153-8D26-3E54E3597973", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "maintenance_date", - "defName": "保养日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "8D78F636-7592-4AEC-B441-DB51CA6C44F0", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "maintenance_mileage", - "defName": "保养里程", - "comment": "", - "domain": null, - "type": "DECIMAL", - "len": 10, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "190183EF-45FE-4F55-9AA1-194A465AB17D", - "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "inspection_date", - "defName": "年检日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "22610152-A673-4C74-87A2-37AE8BBA76C8", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "insurance_date", - "defName": "保险日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "08C6BDAA-AAF6-4C60-916D-F5BED26DB2CC", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "check_date", - "defName": "二级维护时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "247CD9D3-0542-4D55-A8CA-CFEAC2CE267B", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_maintenance_date", - "defName": "下次保养日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "A1E4FEBF-F37C-450C-B7F9-DA19D476A1A5", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_maintenance_mileage", - "defName": "下次保养里程", - "comment": "", - "domain": null, - "type": "DECIMAL", - "len": 10, - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "8D8B2A81-6559-4741-BB51-68C7BF04BA6A", - "baseType": "1A0BDC09-0792-4174-9E8E-80BE8DF44B8E", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_inspection_date", - "defName": "下次年检日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "7605E699-BFF7-47C1-9CCD-4887F4ADA239", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "insurance_expiry_date", - "defName": "保险到期日期", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "7DBCC0E2-2B3C-4B69-B68A-B4FD2DB26C51", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "next_check_date", - "defName": "下次二级维护时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "EAE16FE6-BC69-4B69-BED0-CA61B2B5E413", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "is_owner", - "defName": "是否车主", - "comment": "", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": "", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "domain": "6F7C1C5C-D159-41E6-BF9D-54DEEFA79AFF", - "id": "FF02F510-773A-4BA0-992A-F9C31A5F3316" - }, - { - "defKey": "deleted", - "defName": "删除状态删除标志", - "comment": "", - "domain": "F8C1B685-B82C-442F-BF3C-EF01A3884A07", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": true, - "autoIncrement": false, - "defaultValue": "b'0'", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "96D0C3C2-3722-46ED-B650-6810F548D26D", - "baseType": "A33DC895-0EF9-49E1-BBFF-53273522C6D1", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "creator", - "defName": "创建人", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "9CCFC510-6E12-4FCB-950A-1229C44BD438", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "create_time", - "defName": "创建时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "2F7C2A95-95FC-4322-AE2E-E0064978D483", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "updater", - "defName": "更新人", - "comment": "", - "domain": "16120F75-6AA7-4483-868D-F07F511BB081", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "EA759528-D68C-4D13-93F7-39167613452F", - "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - }, - { - "defKey": "update_time", - "defName": "更新时间", - "comment": "", - "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC", - "type": "", - "len": "", - "scale": "", - "primaryKey": false, - "notNull": false, - "autoIncrement": false, - "defaultValue": "", - "hideInGraph": false, - "refDict": null, - "attr1": "", - "attr2": "", - "attr3": "", - "attr4": "", - "attr5": "", - "attr6": "", - "attr7": "", - "attr8": "", - "attr9": "", - "id": "A6912DE4-D76F-4E70-939E-2D7E116F125F", - "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098", - "extProps": {}, - "uiHint": "642D2E0A-8846-4549-BE56-8C0473F26EDE" - } - ], - "indexes": [], - "sysProps": { - "nameTemplate": "{defKey}[{defName}]" - }, - "headers": [ - { - "freeze": false, - "refKey": "hideInGraph", - "hideInGraph": true - }, - { - "freeze": true, - "refKey": "defKey", - "hideInGraph": false - }, - { - "freeze": true, - "refKey": "defName", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "primaryKey", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "notNull", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "autoIncrement", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "domain", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "type", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "len", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "scale", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "comment", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "refDict", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "defaultValue", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "isStandard", - "hideInGraph": false - }, - { - "freeze": false, - "refKey": "uiHint", - "hideInGraph": true - }, - { - "freeze": false, - "refKey": "extProps", - "hideInGraph": true - } - ], - "correlations": [], - "type": "P", - "notes": {} } ], "views": [], @@ -30534,7 +28726,7 @@ "defName": "业务基础库", "refEntities": [ "BE8A2278-6312-499D-BF94-8900981557ED", - "2533579C-DC43-418B-BA5B-ACA680FFE43B", + "672A2E12-DFC6-4168-8722-F92BE2394498", "842150A7-AD3C-457B-AA05-000C02C679EC", "3BC3BF5D-14E1-4BAB-9081-32B2EA230649", "9B2F50D3-8720-4A28-9814-2BCF5DBC3389", @@ -30543,9 +28735,7 @@ "13D6C572-46EA-4D3F-A37A-65875A23AB6B", "A1A0C1C6-B78D-47E0-AB05-F5A38DAA4D08", "D47FC836-3F02-4B09-A584-E66CD6AF2D7A", - "FC3A9B49-EF15-4D18-8F5E-8FA8688C6702", - "772EE938-76C1-4EEE-ACF8-DD0722761783", - "210BCD3A-6DAF-49F8-BF88-7E65D2B2FEEF" + "FC3A9B49-EF15-4D18-8F5E-8FA8688C6702" ], "refViews": [], "refDiagrams": [