Просмотр исходного кода

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-dependency-common

koushanshan 2 лет назад
Родитель
Сommit
f51fd122ba

+ 2 - 2
pom.xml

@@ -9,9 +9,9 @@
         <relativePath/>
     </parent>
     <groupId>com.dk.iboss</groupId>
-    <artifactId>iboss-dependency-common</artifactId>
+    <artifactId>dkic-dependency-common</artifactId>
     <version>3.0.0</version>
-    <name>iboss-dependency-common</name>
+    <name>dkic-dependency-common</name>
     <description>dk iboss common jar</description>
 
     <properties>

+ 2 - 2
src/main/java/com/dk/common/controller/BaseController.java

@@ -133,7 +133,7 @@ public abstract class BaseController<T> {
      */
     @ApiOperation(value = "批量停用",notes = "批量停用")
     @PostMapping("disable_batch")
-    public ResponseResultVO<Boolean> disableBatch(@RequestBody List<Long> ids) {
+    public ResponseResultVO<Boolean> disableBatch(@RequestBody List<String> ids) {
         return this.getService().disableBatch(ids);
     }
 
@@ -146,7 +146,7 @@ public abstract class BaseController<T> {
      */
     @ApiOperation(value = "批量启用",notes = "批量启用")
     @PostMapping("enable_batch")
-    public ResponseResultVO<Boolean> enableBatch(@RequestBody List<Long> ids) {
+    public ResponseResultVO<Boolean> enableBatch(@RequestBody List<String> ids) {
         return this.getService().enableBatch(ids);
     }
 

+ 27 - 11
src/main/java/com/dk/common/infrastructure/aspect/ServiceAspect.java

@@ -1,6 +1,7 @@
 package com.dk.common.infrastructure.aspect;
 
 import com.dk.common.infrastructure.util.AuthUtils;
+import com.dk.common.infrastructure.util.MyMetaObjectHandler;
 import com.dk.common.infrastructure.util.MybatisSqlIntercept;
 import com.dk.common.mapper.opinfo.OpInfoMapper;
 import com.dk.common.infrastructure.operationlog.OperationLogService;
@@ -66,27 +67,42 @@ public class ServiceAspect implements HandlerInterceptor {
     public void before(JoinPoint joinPoint) {
         try {
             String authorization = httpServletRequest.getHeader("Authorization");
+            if(authorization == null ){
+                return;
+            }
+            String[] tokens = authorization.split(" ");
+            String decrypt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
+            String staffId = JwtUtil.getStaffId(decrypt);
+            String appCode = JwtUtil.getAppCode(decrypt);
+
             //查询及其他特殊方法跳过
             if (!joinPoint.getSignature().getName().startsWith("select") &&
                     !joinPoint.getSignature().getName().startsWith("get") &&
                     !joinPoint.getSignature().getName().equals("login") &&
                     authorization != null
             ) {
-                String[] tokens = authorization.split(" ");
-                String decrypt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
-                String staffId = JwtUtil.getStaffId(decrypt);
-
-                String appCode = JwtUtil.getAppCode(decrypt);
-
                 opInfoMapper.setOpInfo(appCode, staffId.toString(), JwtUtil.getLang(decrypt));
 
                 //记录修改前数据
                 if (!skipMethod.contains(joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName())) {
                     operationLogService.saveLogBefore(joinPoint);
                 }
+                // 设置企业Id
+                String cpId = JwtUtil.getCpId(decrypt);
+                if (cpId != null) {
+                    MyMetaObjectHandler.cpId = Integer.parseInt(cpId);
+                }
+            }else{
+                // 设置企业Id
+                String cpId = JwtUtil.getCpId(decrypt);
+                if (cpId != null) {
+                    MybatisSqlIntercept.cpId = Integer.parseInt(cpId);
+                }
             }
+
             /* 从请求头中获取国际化参数 */
             MybatisSqlIntercept.I18N = httpServletRequest.getHeader("i18n");
+
 //        opInfoMapper.setOpInfo("","","");
         } catch (Exception ignored) {
             opInfoMapper.setOpInfo(UUID.randomUUID().toString(), "10002024-0218-0000-0000-0000000b8b9b", httpServletRequest.getHeader("i18n"));
@@ -95,9 +111,9 @@ public class ServiceAspect implements HandlerInterceptor {
     }
 
     /**
-     * @desc   : 后置切面
+     * @desc : 后置切面
      * @author : 洪旭东
-     * @date   : 2023-08-16 15:16
+     * @date : 2023-08-16 15:16
      */
     @After("print()")
     public void after(JoinPoint joinPoint) {
@@ -115,11 +131,11 @@ public class ServiceAspect implements HandlerInterceptor {
     }
 
     /**
-     * @desc   : 不记录日志的方法
+     * @desc : 不记录日志的方法
      * @author : 洪旭东
-     * @date   : 2023-09-05 13:54
+     * @date : 2023-09-05 13:54
      */
-    private final List<String> skipMethod = new ArrayList<String>(){{
+    private final List<String> skipMethod = new ArrayList<String>() {{
         add("com.dk.common.service.BaseService.insert");
         add("com.dk.mdm.service.pdm.WsClockService.auto");
     }};

+ 48 - 5
src/main/java/com/dk/common/infrastructure/constant/Constant.java

@@ -657,7 +657,7 @@ public class Constant {
         //微信
         REDIS_WECHAT_ACCESS_TOKEN("DKIC_WECHAT-ACCESS-TOKEN"),
         REDIS_LOGIN_UUID("DKIC_LOGIN-UUID-"),
-
+        REDIS_WECHAT_QRCODE_ACCESS_TOKEN("REDIS_WECHAT_QRCODE_ACCESS_TOKEN"),
         ;
 
         private String name;
@@ -872,6 +872,7 @@ public class Constant {
         STAFF("员工档案"),
         CUSTOMER("客户档案"),
         ORDER("销售订单"),
+        ORDEROUT("出库退货"),
         OUTBOUND("出库单"),
         MONEYACCOUNT("资金账号"),
         PURCHASE("采购订单"),
@@ -1158,9 +1159,13 @@ public class Constant {
      */
     public enum DocumentType {
         //采购订单
-        PUR_CHASE("单类型-采购订单"),
+        PUR_CHASE("单类型-采购订单"),
         //销售订单
-        ORDER_CHASE("订单类型-采购订单");
+        ORDER("单据类型-销售订单"),
+        //销售退货
+        OUT_RETURN("单据类型-销售退货"),
+        //采购退货
+        INTO_RETURN("单据类型-采购退货");
 
         private String name;
 
@@ -1329,9 +1334,21 @@ public class Constant {
         // 资金账户
         MONEYACCOUNT("dkic_b","t_mst_money_account"),
         // 数据字典
-        DICTIONARYDATA("dkic_b1","t_mst_dictionary_data"),
+        DICTIONARYDATA("dkic_b","t_mst_dictionary_data"),
+        //商品品牌
+        GOODSBRAND("dkic_b","t_mst_goods_brand"),
+        //商品种类
+        GOODSCATEGORY("dkic_b","t_mst_goods_category"),
+        //商品系列
+        GOODSSERIES("dkic_b","t_mst_goods_series"),
+        //计量单位
+        UNIT("dkic_b","t_mst_unit"),
+        //仓库
+        WAREHOUSE("dkic_b","t_mst_warehouse"),
+        //销售渠道
+        SALECHANNEL("dkic_b","t_mst_sale_channel"),
         // 角色
-        ROLE("dkic_b1","t_mst_role")
+        ROLE("dkic_b","t_mst_role")
         ;
 
         private String mode; // 模式名
@@ -1445,4 +1462,30 @@ public class Constant {
         }
     }
 
+    public enum returnStatus {
+        OUT_REJECT_STATUS_PENDING_REVIEW("退货状态-待审"),
+        // 拒绝
+        OUT_REJECT_STATUS_REFUSE("退货状态-拒绝"),
+        // 冲正
+        OUT_REJECT_STATUS_RIGHTING("退货状态-冲正"),
+        // 通过
+        OUT_REJECT_STATUS_ADOPT("退货状态-通过");
+
+        private String name;
+
+        // get set 方法
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        // 构造方法
+        returnStatus(String name) {
+            this.name = name;
+        }
+    }
+
 }

+ 4 - 0
src/main/java/com/dk/common/infrastructure/enums/ErrorCodeEnum.java

@@ -42,6 +42,10 @@ public enum ErrorCodeEnum {
     NO_WAIT_INTO(4008, "非待入库单据不能删除"),
     ITEMQTY_NO_LESS_INTOQTY(4009, "商品数量不能小于入库中数量"),
     ITEMQTY_NO_LESS_OUTQTY(4010, "商品数量不能小于出库中数量"),
+    OUTINGQTY_NO_LESS_OUTQTY(4011, "入库中数量不能小于入库数量"),
+    INTOINGQTY_NO_LESS_INTOQTY(4012, "入库中数量不能小于入库数量"),
+    OUTQTY_NO_LESS_RETURNQTY(4013, "出库数量不能小于退货数量"),
+    ISEXISTS_AFTER_OPERATE(4014, "当前单据已有后续操作,不能作废"),
     PURCHASE_RETURN_DETAIL_NOT_EXIST(11080,"采购退货明细不可为空,请重新操作"),
     INBOUND_ITEM_NOT_EXIST(11081,"入库明细不可为空,请重新操作"),
     ORIGINAL_DOCUMENT_ABSENT(11082,"单据所对应的原始单据不存在,不允许该操作!"),

+ 31 - 0
src/main/java/com/dk/common/infrastructure/util/MyMetaObjectHandler.java

@@ -0,0 +1,31 @@
+package com.dk.common.infrastructure.util;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import groovy.util.logging.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    public static Integer cpId = 0;
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        this.strictInsertFill(metaObject, "cpId", Integer.class, cpId); // 起始版本 3.3.0(推荐使用)
+//        // 或者
+//        this.strictInsertFill(metaObject, "createTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
+//        // 或者
+//        this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+//        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+//        // 或者
+//        this.strictUpdateFill(metaObject, "updateTime", () -> LocalDateTime.now(), LocalDateTime.class); // 起始版本 3.3.3(推荐)
+//        // 或者
+//        this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}

+ 4 - 0
src/main/java/com/dk/common/infrastructure/util/MybatisSqlIntercept.java

@@ -40,6 +40,7 @@ import java.util.Map;
 public class MybatisSqlIntercept implements Interceptor {
 
     public static String I18N = "";
+    public static Integer cpId = 0;
 
     @Override
     public Object intercept(Invocation invocation) throws Throwable {
@@ -64,6 +65,9 @@ public class MybatisSqlIntercept implements Interceptor {
             }
             if (argsNo2Map != null) {
                 argsNo2Map.put("i18n", I18N);
+                if(cpId != 0){
+                    argsNo2Map.put("cpId", cpId);
+                }
                 args2[1] = argsNo2Map;
             }
         } else {

+ 2 - 2
src/main/java/com/dk/common/mapper/BaseMapper.java

@@ -10,9 +10,9 @@ public interface BaseMapper<T> extends com.baomidou.mybatisplus.core.mapper.Base
 
     Long countByCond(T t);
 
-    T selectByIdForUpdate(@Param("id") Long id);
+    T selectByIdForUpdate(@Param("id") String id);
 
-    List<T> selectByIdsForUpdate(@Param("ids") List<Long> ids);
+    List<T> selectByIdsForUpdate(@Param("ids") List<String> ids);
 
     int insertBatch(@Param("list") List<T> list);
 }

+ 48 - 29
src/main/java/com/dk/common/service/BaseService.java

@@ -24,12 +24,13 @@ import java.lang.reflect.ParameterizedType;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplus.core.mapper.BaseMapper<T>, T> {
 
     public abstract BaseMapper<T> getRepository();
 
-    public String getPrimaryKey(){
+    public String getPrimaryKey() {
         return "id";
     }
 
@@ -112,6 +113,42 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
     @Transactional(
             rollbackFor = {Exception.class}
     )
+    public ResponseResultVO<Boolean> disableBatch(List<String> ids) {
+        List<UUID> uuidList = ids.stream()
+                .map(s -> {
+                    try {
+                        return UUID.fromString(s);
+                    } catch (IllegalArgumentException e) {
+                        return null;
+                    }
+                })
+                .collect(Collectors.toList());
+        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid")).in(getPrimaryKey(), uuidList).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid"))) ?
+                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.DISABLE_FAIL);
+//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
+    }
+
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<Boolean> enableBatch(List<String> ids) {
+        List<UUID> uuidList = ids.stream()
+                .map(s -> {
+                    try {
+                        return UUID.fromString(s);
+                    } catch (IllegalArgumentException e) {
+                        return null;
+                    }
+                })
+                .collect(Collectors.toList());
+        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid")).in(getPrimaryKey(), uuidList).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid"))) ?
+                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.ENABLE_FAIL);
+//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
+    }
+
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
     public ResponseResultVO<Boolean> insertBatch(List<T> list) {
 //        boolean flag = saveBatch(list);
 //        if (flag) {
@@ -130,9 +167,9 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
                 result += getRepository().insertBatch(list.subList(start, end));
                 start = end;
                 if (end + 200 > size) {
-                    end=size;
+                    end = size;
                 } else {
-                    end+=200;
+                    end += 200;
                 }
             }
         }
@@ -201,24 +238,6 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
     @Transactional(
             rollbackFor = {Exception.class}
     )
-    public ResponseResultVO<Boolean> disableBatch(List<Long> ids) {
-        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid")).in(getPrimaryKey(), ids).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid"))) ?
-                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.DISABLE_FAIL);
-//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().disableBatch(ids)));
-    }
-
-    @Transactional(
-            rollbackFor = {Exception.class}
-    )
-    public ResponseResultVO<Boolean> enableBatch(List<Long> ids) {
-        return super.update(new UpdateWrapper<T>().set(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("isValid")).in(getPrimaryKey(), ids).eq(String.valueOf(PojoConfig.VALUES.get("validKey")), PojoConfig.VALUES.get("unValid"))) ?
-                ResponseResultUtil.success() : ResponseResultUtil.error(ResponseCodeEnum.ENABLE_FAIL);
-//        return ResponseResultUtil.success(SqlHelper.retBool(getRepository().enableBatch(ids)));
-    }
-
-    @Transactional(
-            rollbackFor = {Exception.class}
-    )
     public ResponseResultVO<Boolean> importList(List<T> list) {
         return this.insertBatch(list);
     }
@@ -261,8 +280,8 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
         return ResponseResultUtil.success(pageList);
     }
 
-    public <Res>ResponseResultVO<PageList <Res>> mergeListWithCount(Object object, List list, Long total) {
-        PageList <Res> pageList = new PageList(list, total);
+    public <Res> ResponseResultVO<PageList<Res>> mergeListWithCount(Object object, List list, Long total) {
+        PageList<Res> pageList = new PageList(list, total);
         if (object instanceof PageInfo && ((PageInfo) object).getPageSize() != null && ((PageInfo) object).getPageSize() != 0 &&
                 ((PageInfo) object).getCurrentPage() != null && ((PageInfo) object).getCurrentPage() != 0) {
             pageList.setPageSize(((PageInfo) object).getPageSize()).setCurrentPage(((PageInfo) object).getCurrentPage());
@@ -306,7 +325,7 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @author H_x_d
      * @description selectByIdForUpdate 根据id锁行
      */
-    public T selectByIdForUpdate(Long id) {
+    public T selectByIdForUpdate(String id) {
         return getRepository().selectByIdForUpdate(id);
     }
 
@@ -317,7 +336,7 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @author H_x_d
      * @description selectByIdsForUpdate 根据id批量锁行
      */
-    public List<T> selectByIdsForUpdate(List<Long> ids) {
+    public List<T> selectByIdsForUpdate(List<String> ids) {
         return getRepository().selectByIdsForUpdate(ids);
     }
 
@@ -330,12 +349,12 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @return com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper<T>
      * @author H_x_d
      */
-    private UpdateWrapper<T> getUpdateWrapperWhenUpdate(JSONObject jsonObject, String pk){
+    private UpdateWrapper<T> getUpdateWrapperWhenUpdate(JSONObject jsonObject, String pk) {
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>().eq(getPrimaryKey(), jsonObject.get(pk));
         //是否有删除标识字段
         Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
         DeleteFlag deleteFlag = entityClass.getAnnotation(DeleteFlag.class);
-        if (deleteFlag !=null && deleteFlag.value()) {
+        if (deleteFlag != null && deleteFlag.value()) {
             updateWrapper.ne(String.valueOf(PojoConfig.VALUES.get("deleteKey")), PojoConfig.VALUES.get("isDelete"));
         }
         return updateWrapper;
@@ -350,13 +369,13 @@ public abstract class BaseService<T> extends ServiceImpl<com.baomidou.mybatisplu
      * @return com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper<T>
      * @author H_x_d
      */
-    private UpdateWrapper<T> getUpdateWrapperWhenUpdateUuid(JSONObject jsonObject, String pk){
+    private UpdateWrapper<T> getUpdateWrapperWhenUpdateUuid(JSONObject jsonObject, String pk) {
         UUID uuid = UUID.fromString(jsonObject.get(pk).toString());
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<T>().eq(getPrimaryKey(), uuid);
         //是否有删除标识字段
         Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
         DeleteFlag deleteFlag = entityClass.getAnnotation(DeleteFlag.class);
-        if (deleteFlag !=null && deleteFlag.value()) {
+        if (deleteFlag != null && deleteFlag.value()) {
             updateWrapper.ne(String.valueOf(PojoConfig.VALUES.get("deleteKey")), PojoConfig.VALUES.get("isDelete"));
         }
         return updateWrapper;

+ 3 - 3
src/main/java/com/dk/common/util/HttpUtils.java

@@ -103,7 +103,7 @@ public class HttpUtils {
             log.info("post_param-> \n" + JSONObject.toJSONString(object));
             outputStreamWriter.append(JSONObject.toJSONString(object));
             outputStreamWriter.flush();
-//            outputStreamWriter.close();
+            outputStreamWriter.close();
 
             int responseCode = connection.getResponseCode();
             log.info("responseCode-> " + responseCode);
@@ -118,8 +118,8 @@ public class HttpUtils {
                     while ((len = inputStream.read(buffer)) != -1) {
                         fos.write(buffer, 0, len);
                     }
-//                    fos.close();
-//                    inputStream.close();
+                    fos.close();
+                    inputStream.close();
                     log.info("post_result-> \n file url:{}", fileUrl);
                     return ResponseResultUtil.success(fileUrl);
                 } else {