diff --git a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java index f7592205d..ff287fffb 100644 --- a/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java +++ b/cf-framework/cf-spring-boot-starter-mybatis/src/main/java/com/cf/imes/framework/mybatis/core/handler/DefaultDBFieldHandler.java @@ -1,6 +1,8 @@ package com.cf.imes.framework.mybatis.core.handler; import cn.hutool.core.text.CharSequenceUtil; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.mybatis.OAuth2AccessTokenDO; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; @@ -13,7 +15,9 @@ import org.springframework.util.StringUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; import java.util.Objects; @@ -82,10 +86,10 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { OAuth2AccessTokenDO oAuth2AccessTokenDO = get(authorization); organId = oAuth2AccessTokenDO.getOrganId(); - }catch (Exception e){ + } catch (Exception e) { } - this.strictInsertFill(metaObject, "organId", Long.class, organId ); + this.strictInsertFill(metaObject, "organId", Long.class, organId); } @@ -122,14 +126,57 @@ public class DefaultDBFieldHandler implements MetaObjectHandler { organId = oAuth2AccessTokenDO.getOrganId(); - }catch (Exception e){ + } catch (Exception e) { } - this.strictUpdateFill(metaObject, "organId", Long.class, organId ); + this.strictUpdateFill(metaObject, "organId", Long.class, organId); + // 更新update.always字段为空时的默认值 + this.updateFillNullWhenUpdateAlways(metaObject); } + /** + * 当更新时,字段是updateStrategy = FieldStrategy.ALWAYS标记下为空,更新为默认值 + * + * @param metaObject + */ + private void updateFillNullWhenUpdateAlways(MetaObject metaObject) { + List fieldList = findTableInfo(metaObject).getFieldList(); + fieldList.forEach(f -> { + if (FieldStrategy.ALWAYS.equals(f.getUpdateStrategy())) { + String columnName = f.getProperty(); + if (metaObject.getValue(columnName) == null) { + getDefaultFromPropertyType(metaObject, columnName, f.getPropertyType()); + } + } + }); + } + + /** + * 根据字段类型获取相应的默认值 + * + * @param metaObject + * @param columnName + * @param propertyType + */ + private void getDefaultFromPropertyType(MetaObject metaObject, String columnName, Class propertyType) { + if (propertyType.equals(Double.class)) { + metaObject.setValue(columnName, 0.0); + } + if (propertyType.equals(Boolean.class)) { + metaObject.setValue(columnName, false); + } + if (propertyType.equals(Integer.class)) { + metaObject.setValue(columnName, 0); + } + if (propertyType.equals(BigDecimal.class)) { + metaObject.setValue(columnName, BigDecimal.ZERO); + } + if (propertyType.equals(String.class)) { + metaObject.setValue(columnName, ""); + } + } // 从请求中获取到 token diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java index 6ed5911f0..d490c8708 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java @@ -47,14 +47,17 @@ public class PlateGoodDO extends BaseDO { /** * 纹路 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Boolean texture; /** * 宽度 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double width; /** * 高度 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double height; /** * 厚度 @@ -63,18 +66,22 @@ public class PlateGoodDO extends BaseDO { /** * 价格 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double price; /** * 品牌 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String brand; /** * 规格 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String spec; /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/plate/PlateManageServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/plate/PlateManageServiceImpl.java index 893b6b491..f64c047c2 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/plate/PlateManageServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/manage/plate/PlateManageServiceImpl.java @@ -100,26 +100,11 @@ public class PlateManageServiceImpl implements PlateManageService { throw exception(ErrorCodeConstants.PLATE_NOT_EXISTS); } validatePlateExists(updateReqVO.getId(), organId); - + PlateGoodDO updateObj = BeanUtils.toBean(updateReqVO, PlateGoodDO.class); // 校验板材goods_id是否相同 if (plateGoodMapper.isByGoodIDAndId(updateReqVO.getGoodsId(), organId, Long.valueOf(updateReqVO.getId()))) { throw exception(PLATE_GOODS_ID_NOT_SAME); } - PlateGoodDO updateObj = PlateGoodDO.builder() - .id(updateReqVO.getId()) - .goodsId(updateReqVO.getGoodsId()) - .goodsName(updateReqVO.getGoodsName()) - .material(updateReqVO.getMaterial()) - .color(updateReqVO.getColor()) - .texture(ObjectUtil.isNull(updateReqVO.getTexture()) ? false : updateReqVO.getTexture()) - .width(getZeroDouble(updateReqVO.getWidth())) - .height(getZeroDouble(updateReqVO.getHeight())) - .thickness(getZeroDouble(updateReqVO.getThickness())) - .price(getZeroDouble(updateReqVO.getPrice())) - .brand(getEmpty(updateReqVO.getBrand())) - .spec(getEmpty(updateReqVO.getSpec())) - .remark(getEmpty(updateReqVO.getRemark())) - .build(); plateGoodMapper.updateById(updateObj); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dept/DeptDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dept/DeptDO.java index 88e2af40a..cb634dae0 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dept/DeptDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dept/DeptDO.java @@ -1,5 +1,7 @@ package com.cf.imes.module.system.dal.dataobject.dept; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.organ.core.db.OrganBaseDO; import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO; @@ -47,6 +49,7 @@ public class DeptDO extends OrganBaseDO { * * 关联 {@link AdminUserDO#getId()} */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String leader; /** * 联系电话 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictDataDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictDataDO.java index afef8587c..eb726595b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictDataDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictDataDO.java @@ -51,6 +51,7 @@ public class DictDataDO extends BaseDO { * * 对应到 element-ui 为 default、primary、success、info、warning、danger */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String colorType; /** * css 样式 @@ -60,6 +61,7 @@ public class DictDataDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictTypeDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictTypeDO.java index 3ade93403..d89d73864 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictTypeDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/dict/DictTypeDO.java @@ -1,5 +1,7 @@ package com.cf.imes.module.system.dal.dataobject.dict; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; @@ -46,6 +48,7 @@ public class DictTypeDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/notify/NotifyTemplateDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/notify/NotifyTemplateDO.java index 736110a92..63ca12578 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/notify/NotifyTemplateDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/notify/NotifyTemplateDO.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.dataobject.notify; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; @@ -67,6 +68,7 @@ public class NotifyTemplateDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/OrganizationDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/OrganizationDO.java index 26c1b6612..8a4a8935b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/OrganizationDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/OrganizationDO.java @@ -1,5 +1,7 @@ package com.cf.imes.module.system.dal.dataobject.organ; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO; @@ -40,6 +42,7 @@ public class OrganizationDO extends BaseDO { /** * 组织代码 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String code; /** * 拼音首字母 @@ -52,6 +55,7 @@ public class OrganizationDO extends BaseDO { /** * 地址 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String address; /** * 联系人的用户编号 @@ -76,6 +80,7 @@ public class OrganizationDO extends BaseDO { /** * 绑定域名 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String website; /** * 组织套餐编号 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java index 6b1e0c2af..8285a4d03 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/organ/TenantPackageDO.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.dataobject.organ; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler; @@ -42,6 +43,7 @@ public class TenantPackageDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** * 关联的菜单编号 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/MenuDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/MenuDO.java index 29556993e..18055de6e 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/MenuDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/MenuDO.java @@ -1,5 +1,7 @@ package com.cf.imes.module.system.dal.dataobject.permission; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.cf.imes.module.system.enums.permission.MenuTypeEnum; @@ -68,6 +70,7 @@ public class MenuDO extends BaseDO { /** * 菜单图标 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String icon; /** * 组件路径 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/RoleDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/RoleDO.java index de2290182..d722f22a3 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/RoleDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/permission/RoleDO.java @@ -1,10 +1,10 @@ package com.cf.imes.module.system.dal.dataobject.permission; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler; import com.cf.imes.module.system.enums.permission.DataScopeEnum; -import com.cf.imes.framework.organ.core.db.OrganBaseDO; import com.cf.imes.module.system.enums.permission.RoleTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; @@ -60,6 +60,7 @@ public class RoleDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/sms/SmsTemplateDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/sms/SmsTemplateDO.java index 779175e29..7b976a6dc 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/sms/SmsTemplateDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/sms/SmsTemplateDO.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.dataobject.sms; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.cf.imes.module.system.enums.sms.SmsTemplateTypeEnum; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; @@ -67,6 +68,7 @@ public class SmsTemplateDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** * 短信 API 的模板编号 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/tokenconfig/TokenConfigDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/tokenconfig/TokenConfigDO.java index a21d0c8f2..a2488ebd0 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/tokenconfig/TokenConfigDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/tokenconfig/TokenConfigDO.java @@ -56,6 +56,7 @@ public class TokenConfigDO extends BaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java index c54d2c4de..a45fcf8c9 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/user/AdminUserDO.java @@ -1,5 +1,6 @@ package com.cf.imes.module.system.dal.dataobject.user; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.cf.imes.framework.common.enums.CommonStatusEnum; import com.cf.imes.framework.mybatis.core.type.JsonLongSetTypeHandler; import com.cf.imes.framework.organ.core.db.OrganBaseDO; @@ -50,6 +51,7 @@ public class AdminUserDO extends OrganBaseDO { /** * 备注 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String remark; /** * 部门 ID @@ -63,6 +65,7 @@ public class AdminUserDO extends OrganBaseDO { /** * 用户邮箱 */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String email; /** * 手机号码 @@ -73,6 +76,7 @@ public class AdminUserDO extends OrganBaseDO { * * 枚举类 {@link SexEnum} */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Integer sex; /** * 用户头像