From d2701bff9dbe8d8d0592cea1695107793c15be30 Mon Sep 17 00:00:00 2001
From: liuxm <liuxm@fescotech.com>
Date: 星期三, 08 五月 2024 15:41:14 +0800
Subject: [PATCH] 物料管理

---
 pms-parent/pms-global/src/main/resources/mapper/PltMaterialMapper.xml                   |  166 ++++++++++++++++++
 pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialCtrl.java |  132 ++++++++++++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPlt/PltMaterial.java           |   64 +++++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPlt/PltMaterialMapper.java      |   36 ++++
 pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/QueryVo.java      |   19 ++
 pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialSv.java   |   74 ++++++++
 6 files changed, 491 insertions(+), 0 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPlt/PltMaterialMapper.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPlt/PltMaterialMapper.java
new file mode 100644
index 0000000..8096317
--- /dev/null
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoPlt/PltMaterialMapper.java
@@ -0,0 +1,36 @@
+package com.dy.pmsGlobal.daoPlt;
+
+import com.dy.pmsGlobal.pojoPlt.PltMaterial;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author 灏忔槑
+* @description 閽堝琛ㄣ�恜lt_material(鐗╂枡琛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-05-08 14:16:19
+* @Entity com.dy.pmsGlobal.pojoPlt.PltMaterial
+*/
+@Mapper
+public interface PltMaterialMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PltMaterial record);
+
+    int insertSelective(PltMaterial record);
+
+    PltMaterial selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PltMaterial record);
+
+    int updateByPrimaryKey(PltMaterial record);
+
+    Long selectSomeCount(Map<String,Object> params);
+
+    List<PltMaterial> selectSome(Map<String,Object> params);
+
+    int deleteLogicById(Long id);
+
+}
diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPlt/PltMaterial.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPlt/PltMaterial.java
new file mode 100644
index 0000000..5090086
--- /dev/null
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPlt/PltMaterial.java
@@ -0,0 +1,64 @@
+package com.dy.pmsGlobal.pojoPlt;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+/**
+ * 鐗╂枡琛�
+ * @TableName plt_material
+ */
+@TableName(value ="plt_material")
+@Data
+public class PltMaterial implements Serializable {
+    /**
+     * 缂栧彿
+     */
+    @TableId(type = IdType.AUTO)
+    public Integer id;
+
+    /**
+     * 浜у搧瀹炰綋缂栧彿
+     */
+    @NotEmpty(message = "浜у搧瀹炰綋缂栧彿涓嶈兘涓虹┖")
+    public Long proId;
+
+    /**
+     * 鍚嶇О
+     */
+    @NotEmpty(message = "鍚嶇О涓嶈兘涓虹┖")
+    public String name;
+
+    /**
+     * 鍨嬪彿
+     */
+    @NotEmpty(message = "鍨嬪彿涓嶈兘涓虹┖")
+    public String type;
+
+    /**
+     * 闀垮害
+     */
+    public String length;
+
+    /**
+     * 鍘傚
+     */
+    public String factory;
+
+    /**
+     * 鏄惁鍒犻櫎锛�1鏄紝0鍚�
+     */
+    @JSONField(serialize = false)
+    public Boolean deleted;
+
+    /**
+     * 澶囨敞
+     */
+    public String remark;
+}
\ No newline at end of file
diff --git a/pms-parent/pms-global/src/main/resources/mapper/PltMaterialMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/PltMaterialMapper.xml
new file mode 100644
index 0000000..eae3f27
--- /dev/null
+++ b/pms-parent/pms-global/src/main/resources/mapper/PltMaterialMapper.xml
@@ -0,0 +1,166 @@
+<?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.dy.pmsGlobal.daoPlt.PltMaterialMapper">
+
+    <resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoPlt.PltMaterial">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="proId" column="pro_id" jdbcType="BIGINT"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="length" column="length" jdbcType="VARCHAR"/>
+            <result property="factory" column="factory" jdbcType="VARCHAR"/>
+            <result property="deleted" column="deleted" jdbcType="TINYINT"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,pro_id,name,
+        type,length,factory,
+        deleted,remark
+    </sql>
+    <sql id="part_Column_List">
+        ${alias}.id,
+        ${alias}.pro_id,
+        ${alias}.name,
+        ${alias}.type,
+        ${alias}.length,
+        ${alias}.factory,
+        ${alias}.deleted,
+        ${alias}.remark
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from plt_material
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from plt_material
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPlt.PltMaterial" useGeneratedKeys="true">
+        insert into plt_material
+        ( id,pro_id,name
+        ,type,length,factory
+        ,deleted,remark)
+        values (#{id,jdbcType=INTEGER},#{proId,jdbcType=BIGINT},#{name,jdbcType=VARCHAR}
+        ,#{type,jdbcType=VARCHAR},#{length,jdbcType=VARCHAR},#{factory,jdbcType=VARCHAR}
+        ,#{deleted,jdbcType=TINYINT},#{remark,jdbcType=VARCHAR})
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPlt.PltMaterial" useGeneratedKeys="true">
+        insert into plt_material
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="proId != null">pro_id,</if>
+                <if test="name != null">name,</if>
+                <if test="type != null">type,</if>
+                <if test="length != null">length,</if>
+                <if test="factory != null">factory,</if>
+                <if test="deleted != null">deleted,</if>
+                <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="proId != null">#{proId,jdbcType=BIGINT},</if>
+                <if test="name != null">#{name,jdbcType=VARCHAR},</if>
+                <if test="type != null">#{type,jdbcType=VARCHAR},</if>
+                <if test="length != null">#{length,jdbcType=VARCHAR},</if>
+                <if test="factory != null">#{factory,jdbcType=VARCHAR},</if>
+                <if test="deleted != null">#{deleted,jdbcType=TINYINT},</if>
+                <if test="remark != null">#{remark,jdbcType=VARCHAR},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoPlt.PltMaterial">
+        update plt_material
+        <set>
+                <if test="proId != null">
+                    pro_id = #{proId,jdbcType=BIGINT},
+                </if>
+                <if test="name != null">
+                    name = #{name,jdbcType=VARCHAR},
+                </if>
+                <if test="type != null">
+                    type = #{type,jdbcType=VARCHAR},
+                </if>
+                <if test="length != null">
+                    length = #{length,jdbcType=VARCHAR},
+                </if>
+                <if test="factory != null">
+                    factory = #{factory,jdbcType=VARCHAR},
+                </if>
+                <if test="deleted != null">
+                    deleted = #{deleted,jdbcType=TINYINT},
+                </if>
+                <if test="remark != null">
+                    remark = #{remark,jdbcType=VARCHAR},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pmsGlobal.pojoPlt.PltMaterial">
+        update plt_material
+        set 
+            pro_id =  #{proId,jdbcType=BIGINT},
+            name =  #{name,jdbcType=VARCHAR},
+            type =  #{type,jdbcType=VARCHAR},
+            length =  #{length,jdbcType=VARCHAR},
+            factory =  #{factory,jdbcType=VARCHAR},
+            deleted =  #{deleted,jdbcType=TINYINT},
+            remark =  #{remark,jdbcType=VARCHAR}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+
+    <select id="selectSome" resultMap="BaseResultMap">
+        select
+        <include refid="part_Column_List" >
+            <property name="alias" value="m"/>
+        </include>
+        from plt_material m
+        inner join plt_product p on m.pro_id = p.id
+        where m.deleted!=1
+        <trim prefix="and" suffixOverrides="and">
+            <if test="proName != null and proName != ''">
+                p.name like concat('%', #{proName}, '%') and
+            </if>
+            <if test="name != null and name != '' ">
+                m.name like concat('%', #{name}, '%') and
+            </if>
+            <if test="type != null and type != ''">
+                m.type = #{type,jdbcType=VARCHAR} and
+            </if>
+        </trim>
+        order by id desc
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start}, #{count}
+            </if>
+        </trim>
+    </select>
+
+    <select id="selectSomeCount" resultType="java.lang.Long">
+        select count(1)
+        from plt_material m
+        inner join plt_product p on m.pro_id = p.id
+        where m.deleted!=1
+        <trim prefix="and" suffixOverrides="and">
+            <if test="proName != null and proName != ''">
+                p.name like concat('%', #{proName}, '%') and
+            </if>
+            <if test="name != null and name != '' ">
+                m.name like concat('%', #{name}, '%') and
+            </if>
+            <if test="type != null and type != ''">
+                m.type = #{type,jdbcType=VARCHAR} and
+            </if>
+        </trim>
+    </select>
+
+    <update id="deleteLogicById" parameterType="java.lang.Long">
+        update plt_material set deleted = 1
+        where id = #{id}
+    </update>
+</mapper>
diff --git a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialCtrl.java b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialCtrl.java
new file mode 100644
index 0000000..db3bf6f
--- /dev/null
+++ b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialCtrl.java
@@ -0,0 +1,132 @@
+package com.dy.pmsPlatform.material;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.aop.SsoPowerAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pmsGlobal.aop.Log;
+import com.dy.pmsGlobal.pojoPlt.PltMaterial;
+import jakarta.validation.Valid;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鐗╂枡绠$悊
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="material")
+@SuppressWarnings("unchecked")
+public class MaterialCtrl {
+    private MaterialSv sv;
+    @Autowired
+    public MaterialCtrl(MaterialSv sv){
+        this.sv = sv;
+    }
+
+    /**
+     * 淇濆瓨鐗╂枡淇℃伅
+     * @param material
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path="save")
+    @SsoPowerAop(power = "10300001")
+    @Log("淇濆瓨鐗╂枡淇℃伅")
+    public BaseResponse<PltMaterial> save(@RequestBody @Valid PltMaterial material,BindingResult bindingResult){
+        try {
+            if (bindingResult != null && bindingResult.hasErrors()) {
+                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            }
+            material.deleted = false;
+            return BaseResponseUtils.buildSuccess(sv.save(material));
+        }catch (Exception e){
+            log.error("淇濆瓨鐗╂枡寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 鏇存柊鐗╂枡淇℃伅
+     * @param material
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path="update")
+    @SsoPowerAop(power = "10300001")
+    @Log("鏇存柊鐗╂枡淇℃伅")
+    public BaseResponse<PltMaterial> update(@RequestBody @Valid PltMaterial material,BindingResult bindingResult){
+        try {
+            if (bindingResult != null && bindingResult.hasErrors()) {
+                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            }
+            return BaseResponseUtils.buildSuccess(sv.update(material));
+        }catch (Exception e){
+            log.error("鏇存柊鐗╂枡寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鍒犻櫎鐗╂枡淇℃伅
+     * @param id
+     * @return
+     */
+    @GetMapping(path="delete")
+    @SsoPowerAop(power = "10300001")
+    @Log("鍒犻櫎鐗╂枡淇℃伅")
+    public BaseResponse<PltMaterial> delete(String id){
+        try {
+            return BaseResponseUtils.buildSuccess(sv.delete(Long.parseLong(id)));
+        }catch (Exception e){
+            log.error("鍒犻櫎鐗╂枡寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+
+
+    /**
+     * 鏍规嵁ID鏌ヨ鐗╂枡淇℃伅
+     * @return
+     */
+    @GetMapping(path="one")
+    @SsoPowerAop(power = "10300000") //鐧诲綍涓庢潈闄愬悓鏃堕獙璇�
+    @Log("鏍规嵁ID鏌ヨ鐗╂枡淇℃伅")
+    public BaseResponse<PltMaterial> one(String id){
+        try{
+            PltMaterial material=sv.selectById(id);
+            return BaseResponseUtils.buildSuccess(JSON.toJSON(material));
+        }catch (Exception e){
+            log.error("鏌ヨ鐗╂枡寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鏌ヨ鐗╂枡淇℃伅
+     * @param vo
+     * @return
+     */
+    @PostMapping(path="some")
+    @SsoPowerAop(power = "10300000")
+    @Log("鏌ヨ鐗╂枡淇℃伅")
+    public BaseResponse<QueryResultVo<List<PltMaterial>>> some(@RequestBody QueryVo vo){
+        try {
+            QueryResultVo<List<PltMaterial>> list = sv.selectSome(vo) ;
+            return BaseResponseUtils.buildSuccess(list);
+        }catch (Exception e){
+            log.error("鏌ヨ鐗╂枡寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+}
+
diff --git a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialSv.java b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialSv.java
new file mode 100644
index 0000000..d09f551
--- /dev/null
+++ b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/MaterialSv.java
@@ -0,0 +1,74 @@
+package com.dy.pmsPlatform.material;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pmsGlobal.daoPlt.PltMaterialMapper;
+import com.dy.pmsGlobal.pojoPlt.PltMaterial;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class MaterialSv {
+
+    private PltMaterialMapper dao;
+
+    @Autowired
+    public void setDao(PltMaterialMapper dao) {
+        this.dao = dao;
+    }
+
+    @Transactional
+    public int save(PltMaterial material) {
+        int count = dao.insert(material);
+        return count;
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎瀹炰綋
+     * @param id 瀹炰綋ID
+     * @return 褰卞搷璁板綍鏁伴噺
+     */
+    @Transactional
+    public int delete(Long id) {
+        return this.dao.deleteLogicById(id);
+    }
+
+
+
+    @Transactional
+    public int update(PltMaterial material) {
+        int count = dao.updateByPrimaryKeySelective(material);
+        return count;
+    }
+
+
+    public PltMaterial selectById(String materialId) {
+        return dao.selectByPrimaryKey(Long.valueOf(materialId));
+    }
+
+    /**
+     * 鑾峰彇鍙傛暟鍒楄〃
+     */
+    public QueryResultVo<List<PltMaterial>> selectSome(QueryVo queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        //鏌ヨ绗﹀悎鏉′欢鐨勮褰曟�绘暟
+        Long itemTotal = this.dao.selectSomeCount(params);
+
+        QueryResultVo<List<PltMaterial>> rsVo = new QueryResultVo<>(queryVo.pageSize, queryVo.pageCurr) ;
+        //璁$畻鍒嗛〉绛変俊鎭�
+        rsVo.calculateAndSet(itemTotal, params);
+
+        //鏌ヨ绗﹀悎鏉′欢鐨勮褰�
+        rsVo.obj = this.dao.selectSome(params) ;
+        return rsVo ;
+    }
+
+}
+
diff --git a/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/QueryVo.java b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/QueryVo.java
new file mode 100644
index 0000000..212d318
--- /dev/null
+++ b/pms-parent/pms-web-platform/src/main/java/com/dy/pmsPlatform/material/QueryVo.java
@@ -0,0 +1,19 @@
+package com.dy.pmsPlatform.material;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.*;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class QueryVo extends QueryConditionVo {
+    public String name;
+    public String type;
+    /**
+     * 浜у搧鍚嶇О
+     */
+    public String proName;
+}

--
Gitblit v1.8.0