Browse Source

用友接口

hfxc226 2 năm trước cách đây
mục cha
commit
ad62140f57

+ 10 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbPositionDTO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.persistence.Transient;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -21,6 +22,15 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 public class SbPositionDTO extends BaseDTO implements Serializable {
 
+    /**
+     * 区域维修负责人
+     */
+    private String userId;
+    /**
+     * 区域维修负责人
+     */
+    @Transient
+    private String userName;
     /**
      * 位置id
      */

+ 9 - 0
platform-dao/src/main/java/com/platform/dao/entity/sb/SbPosition.java

@@ -21,6 +21,15 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 public class SbPosition implements Serializable {
 
+    /**
+     * 区域维修负责人
+     */
+    private String userId;
+    /**
+     * 区域维修负责人
+     */
+    @Transient
+    private String userName;
     /**
      * 位置id
      */

+ 8 - 0
platform-dao/src/main/java/com/platform/dao/vo/sb/SbPositionVO.java

@@ -53,6 +53,14 @@ public class SbPositionVO extends BaseVO implements Serializable {
      * 上层位置id
      */
     private String parentId;
+    /**
+     * 区域维修负责人
+     */
+    private String userId;
+    /**
+     * 区域维修负责人
+     */
+    private String userName;
     /**
      * 备注
      */

+ 9 - 3
platform-dao/src/main/resources/mapper/sb/SbPositionMapper.xml

@@ -2,15 +2,15 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.dao.mapper.sb.SbPositionMapper">
     <sql id="Base_Column_List">
-        id, no, name, type, sort, del_flag, parent_id, remark, created_user_id, update_user_id,
+        id, no, name, type, sort, code, user_id, del_flag, parent_id, remark, created_user_id, update_user_id,
         created_time, update_time
     </sql>
 
     <sql id="Join_Column">
-        position.id, position.no, position.name, position.type, position.sort, position.del_flag, position.parent_id,
+        position.id, position.no, position.name, position.code, position.user_id, position.type, position.sort, position.del_flag, position.parent_id,
         position.remark, position.created_user_id, position.update_user_id,
         position.created_time, position.update_time,
-        p.name as parentName
+        p.name as parentName, user.real_name as userName
     </sql>
 
     <select id="selectVOList" parameterType="com.platform.dao.dto.sb.SbPositionDTO"
@@ -19,6 +19,7 @@
         <include refid="Join_Column"/>
         from t_sb_position position
         left join t_sb_position p on position.parent_id = p.id
+        left join t_sys_user user on position.user_id = user.user_id
         where 1=1
         <if test="keyword != null and keyword != ''">
             and ( position.name like concat('%',#{keyword},'%') or
@@ -30,6 +31,10 @@
         <if test="parentCode != null and parentCode != ''">
             and position.code like concat(#{parentCode},'%')
         </if>
+        <if test="userName != null and userName != ''">
+            and ( user.real_name like concat('%',#{userName},'%') or
+            user.username like concat('%',#{userName},'%'))
+        </if>
     </select>
 
     <select id="getById" parameterType="java.lang.Object"
@@ -38,6 +43,7 @@
         <include refid="Join_Column"/>
         from t_sb_position position
         left join t_sb_position p on position.parent_id = p.id
+        left join t_sys_user user on position.user_id = user.user_id
         where position.id = #{id}
     </select>
 

+ 29 - 3
platform-service/src/main/java/com/platform/service/sb/impl/SbPositionServiceImpl.java

@@ -70,7 +70,7 @@ public class SbPositionServiceImpl extends BaseServiceImpl<SbPositionMapper, SbP
             WeekendCriteria<SbPosition, Object> weekendCriteriaCount = weekendCount.weekendCriteria();
             weekendCriteriaCount.andEqualTo(SbPosition::getParentId, parentId);
             int i = mapper.selectCountByExample(weekendCount);
-            String code = IdGeneratorUtils.getStrNum("", ++i);
+            String code = IdGeneratorUtils.getStrNum(parent.getCode(), ++i);
             model.setCode(code);
         } else {
             Weekend<SbPosition> weekendCount = new Weekend<>(SbPosition.class);
@@ -92,8 +92,34 @@ public class SbPositionServiceImpl extends BaseServiceImpl<SbPositionMapper, SbP
     public void modModelByDTO(SbPositionDTO model) {
         SbPosition entity = mapper.selectByPrimaryKey(model.getId());
         String parentId = model.getParentId();
-        if (!entity.getParentId().equals(parentId)) {
-            throw new BusinessException("不允许修改上层位置");
+        SbPosition parent = mapper.selectByPrimaryKeyForUpdate(parentId);
+
+        // 之前没有编码,则设置编码
+        if(StringUtils.isBlank(model.getCode())){
+            if (StringUtils.isNotBlank(parentId)) {
+                Weekend<SbPosition> weekendCount = new Weekend<>(SbPosition.class);
+                WeekendCriteria<SbPosition, Object> weekendCriteriaCount = weekendCount.weekendCriteria();
+                weekendCriteriaCount.andEqualTo(SbPosition::getParentId, parentId);
+                int i = mapper.selectCountByExample(weekendCount);
+                String code = IdGeneratorUtils.getStrNum(parent.getCode(), ++i);
+                model.setCode(code);
+            } else {
+                Weekend<SbPosition> weekendCount = new Weekend<>(SbPosition.class);
+                WeekendCriteria<SbPosition, Object> weekendCriteriaCount = weekendCount.weekendCriteria();
+                weekendCriteriaCount.orEqualTo(SbPosition::getParentId, "");
+                weekendCriteriaCount.orIsNull(SbPosition::getParentId);
+                int i = mapper.selectCountByExample(weekendCount);
+                String code = IdGeneratorUtils.getStrNum("",i);
+                model.setCode(code);
+            }
+        }else{
+            if (!entity.getParentId().equals(parentId)) {// 更换父级编码
+                if(StringUtils.isBlank(parent.getCode())){
+                    throw new BusinessException("父级区域关联编码未设置,请联系技术,或者修改父级信息,重新保存");
+                }
+                String newCode = parent.getCode() + model.getCode().substring(model.getCode().length()-3);
+                model.setCode(newCode);
+            }
         }
         super.modModelByDTO(model);
     }