xdd 3 kuukautta sitten
vanhempi
commit
9fa6f37cda

+ 1 - 1
fs-admin/src/main/java/com/fs/qw/config/SocketConfig.java

@@ -5,7 +5,7 @@ import org.springframework.context.annotation.Configuration;
 
 @Configuration
 public class SocketConfig {
-    @Value("${socket.url}")
+//    @Value("${socket.url}")
     private String socketUrl;
 
     public String getSocketUrl() {

+ 104 - 0
fs-admin/src/main/java/com/fs/store/controller/FsWarehousesController.java

@@ -0,0 +1,104 @@
+package com.fs.store.controller;
+
+import java.util.List;
+
+import com.fs.store.domain.FsWarehouses;
+import com.fs.store.service.IFsWarehousesService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 仓库Controller
+ *
+ * @author fs
+ * @date 2025-03-07
+ */
+@RestController
+@RequestMapping("/system/warehouses")
+public class FsWarehousesController extends BaseController
+{
+    @Autowired
+    private IFsWarehousesService fsWarehousesService;
+
+    /**
+     * 查询仓库列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(FsWarehouses fsWarehouses)
+    {
+        startPage();
+        List<FsWarehouses> list = fsWarehousesService.selectFsWarehousesList(fsWarehouses);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出仓库列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:export')")
+    @Log(title = "仓库", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(FsWarehouses fsWarehouses)
+    {
+        List<FsWarehouses> list = fsWarehousesService.selectFsWarehousesList(fsWarehouses);
+        ExcelUtil<FsWarehouses> util = new ExcelUtil<FsWarehouses>(FsWarehouses.class);
+        return util.exportExcel(list, "warehouses");
+    }
+
+    /**
+     * 获取仓库详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(fsWarehousesService.selectFsWarehousesById(id));
+    }
+
+    /**
+     * 新增仓库
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:add')")
+    @Log(title = "仓库", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody FsWarehouses fsWarehouses)
+    {
+        return toAjax(fsWarehousesService.insertFsWarehouses(fsWarehouses));
+    }
+
+    /**
+     * 修改仓库
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:edit')")
+    @Log(title = "仓库", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody FsWarehouses fsWarehouses)
+    {
+        return toAjax(fsWarehousesService.updateFsWarehouses(fsWarehouses));
+    }
+
+    /**
+     * 删除仓库
+     */
+    @PreAuthorize("@ss.hasPermi('system:warehouses:remove')")
+    @Log(title = "仓库", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable List<Long> ids)
+    {
+        return toAjax(fsWarehousesService.deleteFsWarehousesByIds(ids));
+    }
+}

+ 122 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsWarehouses.java

@@ -0,0 +1,122 @@
+package com.fs.store.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 仓库对象 fs_warehouses
+ *
+ * @author fs
+ * @date 2025-03-07
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class FsWarehouses extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 仓库ID */
+    private Long id;
+
+    /** 仓库名称 */
+    @Excel(name = "仓库名称")
+    private String warehouseName;
+
+    /** 仓库编码 */
+    @Excel(name = "仓库编码")
+    private String warehouseCode;
+
+    /** 仓库地址 */
+    @Excel(name = "仓库地址")
+    private String warehouseAddress;
+
+    /** 联系人 */
+    @Excel(name = "联系人")
+    private String contactPerson;
+
+    /** 联系电话 */
+    @Excel(name = "联系电话")
+    private String contactPhone;
+
+    /** 是否启用(1:启用,0:停用) */
+    @Excel(name = "是否启用", readConverterExp = "1=:启用,0:停用")
+    private Integer isActive;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdAt;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedAt;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public void setWarehouseName(String warehouseName)
+    {
+        this.warehouseName = warehouseName;
+    }
+
+    public void setWarehouseCode(String warehouseCode)
+    {
+        this.warehouseCode = warehouseCode;
+    }
+
+    public void setWarehouseAddress(String warehouseAddress)
+    {
+        this.warehouseAddress = warehouseAddress;
+    }
+
+    public void setContactPerson(String contactPerson)
+    {
+        this.contactPerson = contactPerson;
+    }
+
+    public void setContactPhone(String contactPhone)
+    {
+        this.contactPhone = contactPhone;
+    }
+
+    public void setIsActive(Integer isActive)
+    {
+        this.isActive = isActive;
+    }
+
+    public void setCreatedAt(Date createdAt)
+    {
+        this.createdAt = createdAt;
+    }
+
+    public void setUpdatedAt(Date updatedAt)
+    {
+        this.updatedAt = updatedAt;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("warehouseName", getWarehouseName())
+            .append("warehouseCode", getWarehouseCode())
+            .append("warehouseAddress", getWarehouseAddress())
+            .append("contactPerson", getContactPerson())
+            .append("contactPhone", getContactPhone())
+            .append("isActive", getIsActive())
+            .append("createdAt", getCreatedAt())
+            .append("updatedAt", getUpdatedAt())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

+ 62 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsWarehousesMapper.java

@@ -0,0 +1,62 @@
+package com.fs.store.mapper;
+
+import com.fs.store.domain.FsWarehouses;
+
+import java.util.List;
+
+/**
+ * 仓库Mapper接口
+ *
+ * @author fs
+ * @date 2025-03-07
+ */
+public interface FsWarehousesMapper
+{
+    /**
+     * 查询仓库
+     *
+     * @param id 仓库ID
+     * @return 仓库
+     */
+    public FsWarehouses selectFsWarehousesById(Long id);
+
+    /**
+     * 查询仓库列表
+     *
+     * @param fsWarehouses 仓库
+     * @return 仓库集合
+     */
+    public List<FsWarehouses> selectFsWarehousesList(FsWarehouses fsWarehouses);
+
+    /**
+     * 新增仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    public int insertFsWarehouses(FsWarehouses fsWarehouses);
+
+    /**
+     * 修改仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    public int updateFsWarehouses(FsWarehouses fsWarehouses);
+
+    /**
+     * 删除仓库
+     *
+     * @param id 仓库ID
+     * @return 结果
+     */
+    public int deleteFsWarehousesById(Long id);
+
+    /**
+     * 批量删除仓库
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteFsWarehousesByIds(List<Long> ids);
+}

+ 62 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsWarehousesService.java

@@ -0,0 +1,62 @@
+package com.fs.store.service;
+
+import com.fs.store.domain.FsWarehouses;
+
+import java.util.List;
+
+/**
+ * 仓库Service接口
+ *
+ * @author fs
+ * @date 2025-03-07
+ */
+public interface IFsWarehousesService
+{
+    /**
+     * 查询仓库
+     *
+     * @param id 仓库ID
+     * @return 仓库
+     */
+    public FsWarehouses selectFsWarehousesById(Long id);
+
+    /**
+     * 查询仓库列表
+     *
+     * @param fsWarehouses 仓库
+     * @return 仓库集合
+     */
+    public List<FsWarehouses> selectFsWarehousesList(FsWarehouses fsWarehouses);
+
+    /**
+     * 新增仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    public int insertFsWarehouses(FsWarehouses fsWarehouses);
+
+    /**
+     * 修改仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    public int updateFsWarehouses(FsWarehouses fsWarehouses);
+
+    /**
+     * 批量删除仓库
+     *
+     * @param ids 需要删除的仓库ID
+     * @return 结果
+     */
+    public int deleteFsWarehousesByIds(List<Long> ids);
+
+    /**
+     * 删除仓库信息
+     *
+     * @param id 仓库ID
+     * @return 结果
+     */
+    public int deleteFsWarehousesById(Long id);
+}

+ 94 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsWarehousesServiceImpl.java

@@ -0,0 +1,94 @@
+package com.fs.store.service.impl;
+
+import java.util.List;
+
+import com.fs.store.domain.FsWarehouses;
+import com.fs.store.mapper.FsWarehousesMapper;
+import com.fs.store.service.IFsWarehousesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 仓库Service业务层处理
+ *
+ * @author fs
+ * @date 2025-03-07
+ */
+@Service
+public class FsWarehousesServiceImpl implements IFsWarehousesService
+{
+    @Autowired
+    private FsWarehousesMapper fsWarehousesMapper;
+
+    /**
+     * 查询仓库
+     *
+     * @param id 仓库ID
+     * @return 仓库
+     */
+    @Override
+    public FsWarehouses selectFsWarehousesById(Long id)
+    {
+        return fsWarehousesMapper.selectFsWarehousesById(id);
+    }
+
+    /**
+     * 查询仓库列表
+     *
+     * @param fsWarehouses 仓库
+     * @return 仓库
+     */
+    @Override
+    public List<FsWarehouses> selectFsWarehousesList(FsWarehouses fsWarehouses)
+    {
+        return fsWarehousesMapper.selectFsWarehousesList(fsWarehouses);
+    }
+
+    /**
+     * 新增仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    @Override
+    public int insertFsWarehouses(FsWarehouses fsWarehouses)
+    {
+        return fsWarehousesMapper.insertFsWarehouses(fsWarehouses);
+    }
+
+    /**
+     * 修改仓库
+     *
+     * @param fsWarehouses 仓库
+     * @return 结果
+     */
+    @Override
+    public int updateFsWarehouses(FsWarehouses fsWarehouses)
+    {
+        return fsWarehousesMapper.updateFsWarehouses(fsWarehouses);
+    }
+
+    /**
+     * 批量删除仓库
+     *
+     * @param ids 需要删除的仓库ID
+     * @return 结果
+     */
+    @Override
+    public int deleteFsWarehousesByIds(List<Long> ids)
+    {
+        return fsWarehousesMapper.deleteFsWarehousesByIds(ids);
+    }
+
+    /**
+     * 删除仓库信息
+     *
+     * @param id 仓库ID
+     * @return 结果
+     */
+    @Override
+    public int deleteFsWarehousesById(Long id)
+    {
+        return fsWarehousesMapper.deleteFsWarehousesById(id);
+    }
+}

+ 96 - 0
fs-service-system/src/main/resources/mapper/store/FsWarehousesMapper.xml

@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.store.mapper.FsWarehousesMapper">
+
+    <resultMap type="FsWarehouses" id="FsWarehousesResult">
+        <result property="id"    column="id"    />
+        <result property="warehouseName"    column="warehouse_name"    />
+        <result property="warehouseCode"    column="warehouse_code"    />
+        <result property="warehouseAddress"    column="warehouse_address"    />
+        <result property="contactPerson"    column="contact_person"    />
+        <result property="contactPhone"    column="contact_phone"    />
+        <result property="isActive"    column="is_active"    />
+        <result property="createdAt"    column="created_at"    />
+        <result property="updatedAt"    column="updated_at"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectFsWarehousesVo">
+        select id, warehouse_name, warehouse_code, warehouse_address, contact_person, contact_phone, is_active, created_at, updated_at, remark from fs_warehouses
+    </sql>
+
+    <select id="selectFsWarehousesList" parameterType="FsWarehouses" resultMap="FsWarehousesResult">
+        <include refid="selectFsWarehousesVo"/>
+        <where>
+            <if test="warehouseName != null  and warehouseName != ''"> and warehouse_name like concat('%', #{warehouseName}, '%')</if>
+            <if test="warehouseCode != null  and warehouseCode != ''"> and warehouse_code = #{warehouseCode}</if>
+            <if test="warehouseAddress != null  and warehouseAddress != ''"> and warehouse_address = #{warehouseAddress}</if>
+            <if test="contactPerson != null  and contactPerson != ''"> and contact_person = #{contactPerson}</if>
+            <if test="contactPhone != null  and contactPhone != ''"> and contact_phone = #{contactPhone}</if>
+            <if test="isActive != null "> and is_active = #{isActive}</if>
+            <if test="createdAt != null "> and created_at = #{createdAt}</if>
+            <if test="updatedAt != null "> and updated_at = #{updatedAt}</if>
+        </where>
+    </select>
+
+    <select id="selectFsWarehousesById" parameterType="Long" resultMap="FsWarehousesResult">
+        <include refid="selectFsWarehousesVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertFsWarehouses" parameterType="FsWarehouses" useGeneratedKeys="true" keyProperty="id">
+        insert into fs_warehouses
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="warehouseName != null and warehouseName != ''">warehouse_name,</if>
+            <if test="warehouseCode != null">warehouse_code,</if>
+            <if test="warehouseAddress != null">warehouse_address,</if>
+            <if test="contactPerson != null">contact_person,</if>
+            <if test="contactPhone != null">contact_phone,</if>
+            <if test="isActive != null">is_active,</if>
+            <if test="createdAt != null">created_at,</if>
+            <if test="updatedAt != null">updated_at,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="warehouseName != null and warehouseName != ''">#{warehouseName},</if>
+            <if test="warehouseCode != null">#{warehouseCode},</if>
+            <if test="warehouseAddress != null">#{warehouseAddress},</if>
+            <if test="contactPerson != null">#{contactPerson},</if>
+            <if test="contactPhone != null">#{contactPhone},</if>
+            <if test="isActive != null">#{isActive},</if>
+            <if test="createdAt != null">#{createdAt},</if>
+            <if test="updatedAt != null">#{updatedAt},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateFsWarehouses" parameterType="FsWarehouses">
+        update fs_warehouses
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="warehouseName != null and warehouseName != ''">warehouse_name = #{warehouseName},</if>
+            <if test="warehouseCode != null">warehouse_code = #{warehouseCode},</if>
+            <if test="warehouseAddress != null">warehouse_address = #{warehouseAddress},</if>
+            <if test="contactPerson != null">contact_person = #{contactPerson},</if>
+            <if test="contactPhone != null">contact_phone = #{contactPhone},</if>
+            <if test="isActive != null">is_active = #{isActive},</if>
+            <if test="createdAt != null">created_at = #{createdAt},</if>
+            <if test="updatedAt != null">updated_at = #{updatedAt},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteFsWarehousesById" parameterType="Long">
+        delete from fs_warehouses where id = #{id}
+    </delete>
+
+    <delete id="deleteFsWarehousesByIds" parameterType="String">
+        delete from fs_warehouses where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 7 - 0
fs-user-app/pom.xml

@@ -115,6 +115,13 @@
             <scope>provided</scope>
         </dependency>
 
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 3 - 2
fs-user-app/src/main/java/com/fs/core/security/SecurityUtils.java

@@ -1,5 +1,6 @@
 package com.fs.core.security;
 
+import com.tencentcloudapi.yunjing.v20180228.models.MisAlarmNonlocalLoginPlacesRequest;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -7,7 +8,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
 /**
  * 安全服务工具类
- * 
+ *
 
  */
 public class SecurityUtils
@@ -21,7 +22,7 @@ public class SecurityUtils
      */
     public static String encryptPassword(String password)
     {
-        
+
         BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
         return passwordEncoder.encode(password);
     }

+ 61 - 0
fs-user-app/src/test/java/com/fs/core/security/BaseSpringBootTest.java

@@ -0,0 +1,61 @@
+package com.fs.core.security;
+
+import cn.hutool.core.date.DateUtil;
+import com.fs.common.utils.DateUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 测试基类
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest
+public abstract class BaseSpringBootTest {
+
+    protected Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    private long time;
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        this.setTime(System.currentTimeMillis());
+        logger.info("==> 测试开始执行 <==");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        logger.info("==> 测试执行完成,耗时:{} ms <==",
+                System.currentTimeMillis() - this.getTime());
+    }
+
+    /**
+     * 方法描述:打印list.
+     * 创建时间:2018-10-11 00:23:28
+     */
+    <T> void print(List<T> list) {
+        if (!CollectionUtils.isEmpty(list)) {
+            list.forEach(System.out::println);
+        }
+    }
+
+    void print(Object o) {
+        System.out.println(o.toString());
+    }
+
+}

+ 16 - 0
fs-user-app/src/test/java/com/fs/core/security/SecurityUtilsTest.java

@@ -0,0 +1,16 @@
+package com.fs.core.security;
+
+import org.junit.Test;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import static com.fs.core.security.SecurityUtils.encryptPassword;
+
+
+public class SecurityUtilsTest extends BaseSpringBootTest{
+
+    @Test
+    public void encryptPasswor() {
+        String s = encryptPassword("123456");
+        System.out.println(s);
+    }
+}