Procházet zdrojové kódy

把gradeCode放入Authutils中

zhoux před 1 rokem
rodič
revize
c650d25a30

+ 1 - 0
src/main/java/com/dk/mdm/infrastructure/util/AuthUtils.java

@@ -165,6 +165,7 @@ public class AuthUtils {
             if (userMap != null) {
                 userMap.put("staffId",staff.getStaffId());
                 userMap.put("staffCode",staff.getStaffCode());
+                userMap.put("gradeCode",staff.getGradeCode());
                 userMap.put("cpId",staff.getCpId());
                 userMap.put("cpCode",staff.getCpCode());
                 userMap.put("orgId",staff.getOrgId());

+ 3 - 0
src/main/java/com/dk/mdm/mapper/mst/MoneyAccountMapper.xml

@@ -62,6 +62,9 @@
             <if test="flgValid != null ">
                 AND t.flg_valid  = #{flgValid}
             </if>
+            <if test="macType != null">
+                AND t.mac_Type  = #{macType} ::uuid
+            </if>
             <if test="macTypeList != null and macTypeList.size() > 0">
                 AND t.mac_Type  =any(#{macTypeList, typeHandler=UuidListTypeHandler})
             </if>

+ 5 - 1
src/main/java/com/dk/mdm/mapper/mst/StaffMapper.xml

@@ -40,6 +40,7 @@
         <result column="hr_status" property="hrStatus"/>
         <result column="default_wh_id" property="defaultWhId" typeHandler="UuidTypeHandler" />
         <result column="default_wh_name" property="defaultWhName"/>
+        <result column="grade_code" property="gradeCode"></result>
     </resultMap>
 
     <!-- 通用条件列 -->
@@ -139,13 +140,14 @@
     <select id="selectById" resultMap="BaseResultMap">
         SELECT
         <include refid="Base_Column_List"/>
-        , org.org_name,
+        , org.org_name,tac.grade_code,
         case when t.hr_status = 1 then '在职' else '离职' end as  hr_status_name,
             (SELECT  COALESCE(array_to_string(array_agg(role_name), ','),'')
             FROM dkic_b.t_mst_role
             WHERE role_id = ANY (t.role_ids)) AS role_names
         FROM dkic_b.t_mst_staff t
         LEFT JOIN dkic_b.t_mst_org org ON t.org_Id = org.org_Id
+        LEFT JOIN dkic_a.t_a_company tac ON t.cp_id = tac.cp_id
         WHERE t.staff_id = #{id}::uuid
     </select>
 
@@ -155,6 +157,7 @@
         <include refid="Base_Column_List"/>
         , org.org_name,
         org.flg_business,
+        tac.grade_code,
         CASE
         WHEN tmow.wh_id IS NULL THEN
         (SELECT wh_id FROM dkic_b.t_mst_warehouse where cp_id = T.cp_id and flg_default)
@@ -171,6 +174,7 @@
         FROM dkic_b.t_mst_role
         WHERE role_id = ANY (t.role_ids)) AS role_names
         FROM dkic_b.t_mst_staff t
+        LEFT JOIN dkic_a.t_a_company tac ON t.cp_id = tac.cp_id
         LEFT JOIN dkic_b.t_mst_org org ON t.org_Id = org.org_Id
         LEFT JOIN dkic_b.t_mst_org_wh tmow ON tmow.cp_id = T.cp_id
         AND tmow.org_id = T.org_id

+ 12 - 5
src/main/java/com/dk/mdm/service/mst/DictionaryDataService.java

@@ -4,6 +4,7 @@ import com.dk.common.infrastructure.annotaiton.Pagination;
 import com.dk.common.infrastructure.constant.Constant;
 import com.dk.common.infrastructure.enums.ErrorCodeEnum;
 import com.dk.common.model.pojo.PageList;
+import com.dk.common.model.vo.core.StaffEntity;
 import com.dk.common.response.ResponseCodeEnum;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
@@ -55,6 +56,9 @@ public class DictionaryDataService extends BaseService<DictionaryData> {
     private MoneyAccountService moneyAccountService;
 
     @Autowired
+    private MoneyAccountMapper moneyAccountMapper;
+
+    @Autowired
     private AuthUtils authUtils;
 
     /**
@@ -146,10 +150,6 @@ public class DictionaryDataService extends BaseService<DictionaryData> {
                         .setBalance(new BigDecimal(0)).setInitBalance(new BigDecimal(0))
                         .setMacName(dictionaryDataVO.getDataValue()).setMacType(dictionaryData.getDataId()).setMacId(moneyAccountResponse.getMacId()));
             }
-
-
-
-
         }
         super.updateByUuid(dictionaryData);
         return ResponseResultUtil.success();
@@ -170,7 +170,14 @@ public class DictionaryDataService extends BaseService<DictionaryData> {
             return ResponseResultUtil.error(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SYSTEM_PRESET_DATA_UNABLE_TO_OPERATE.getMessage());
         }
         super.disable(id);
-
+        StaffEntity staff = authUtils.getStaff();
+        if (dictionaryDataItem.getDictCode().equals("基础资料-账户") && Constant.GradeCode.STD.getName().equals(staff.getGradeCode())) {
+            // 停用资金账户
+            List<MoneyAccountResponse> moneyAccountResponses = moneyAccountMapper.selectByCond(new MoneyAccountQuery().setMacType(dictionaryDataItem.getDataId()).setCpId(authUtils.getStaff().getCpId()));
+            if(moneyAccountResponses != null && moneyAccountResponses.size() > 0){
+                moneyAccountService.disable(moneyAccountResponses.get(0).getMacId());
+            }
+        }
         return ResponseResultUtil.success();
     }
 

+ 24 - 0
src/main/java/com/dk/mdm/service/mst/MoneyAccountService.java

@@ -226,4 +226,28 @@ public class MoneyAccountService extends BaseService<MoneyAccount> {
 		accountService.updateMac(moneyAccount.getMacId());
 		return ResponseResultUtil.success();
 	}
+
+	/**
+	 * @desc : 启用资金账户(用户标准版,账户类别的启用时调用)
+	 * @author : 周兴
+	 * @date : 2024/5/23 10:49
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<Boolean> enable(String id){
+		return super.enable(id);
+	}
+
+	/**
+	 * @desc : 停用资金账户(用户标准版,账户类别的停用时调用)
+	 * @author : 周兴
+	 * @date : 2024/5/23 10:49
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<Boolean> disable(String id){
+		return super.disable(id);
+	}
 }

+ 1 - 0
src/main/java/com/dk/mdm/service/mst/StaffService.java

@@ -742,6 +742,7 @@ public class StaffService extends BaseService<Staff> {
                     .setWxUserId(staff.getWxUserId())
                     .setStaffCode(staff.getStaffCode())
                     .setStaffName(staff.getStaffName())
+                    .setGradeCode(staff.getGradeCode())
                     .setCpId(Integer.parseInt(param.get("cpId").toString()))
                     .setAppCode(param.get("appCode").toString()));
             // 更新员工登录状态