瀏覽代碼

代码提交

cxd 6 月之前
父節點
當前提交
1d4139ab53

+ 11 - 0
gqy-admin/src/main/java/com/gqy/web/controller/document/ProductController.java

@@ -59,6 +59,17 @@ public class ProductController extends BaseController {
         return AjaxResultCQY.success(iDcProductService.add(maps));
     }
 
+    /**
+     * 修改产品
+     * @return
+     */
+    @PostMapping("/edit")
+    public AjaxResultCQY edit(@RequestBody Map maps) {
+        return AjaxResultCQY.success(iDcProductService.update(maps));
+    }
+
+
+
     @GetMapping("/list")
     public TableDataInfo list(@RequestParam Map<String, Object> maps) {
         // 开启分页

+ 7 - 1
gqy-system/src/main/java/com/gqy/document/mapper/DcProductMapper.java

@@ -10,7 +10,13 @@ import java.util.Map;
  */
 public interface DcProductMapper {
 
-
+    /**
+     * 更新产品对象 dc_product
+     *
+     * @param dcProduct 产品对象 dc_product
+     * @return 结果
+     */
+    public int updateDcProduct(DcProduct dcProduct);
 
 
     /**

+ 8 - 0
gqy-system/src/main/java/com/gqy/document/mapper/DcSpecMapper.java

@@ -1,11 +1,19 @@
 package com.gqy.document.mapper;
 
 import com.gqy.document.domain.DcSpec;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface DcSpecMapper {
 
+
+    /**
+     * 批量新增产品规格
+     */
+    void deleteByProductId( @Param("dcpId") int dcpId );
+
+
     /**
      * 查询产品规格
      */

+ 9 - 0
gqy-system/src/main/java/com/gqy/document/mapper/DcSystemProductMapper.java

@@ -2,12 +2,21 @@ package com.gqy.document.mapper;
 
 import com.gqy.document.domain.DcSystemProduct;
 import com.gqy.document.domain.DcTemplate;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
 
 public interface DcSystemProductMapper {
 
+    /**
+     * 根据系统编号和产品ID删除关联信息
+     *
+     * @param sysNo 系统编号
+     * @param dcpId 产品ID
+     */
+    void deleteBySysNoAndDcpId(@Param("sysNo") int sysNo, @Param("dcpId") int dcpId);
+
     /**
      * 根据产品ID查询工程系统关联信息
      *

+ 4 - 0
gqy-system/src/main/java/com/gqy/document/mapper/DcWorkSystemMapper.java

@@ -1,6 +1,7 @@
 package com.gqy.document.mapper;
 
 import com.gqy.document.domain.DcWorkSystem;
+import org.apache.ibatis.annotations.Param;
 
 /**
  *dc_work_system
@@ -14,4 +15,7 @@ public interface DcWorkSystemMapper {
      */
     public int insertDcWorkSystem(DcWorkSystem dcWorkSystem);
 
+
+    void deleteByWrIdAndSysId(@Param("wrId") int wrId, @Param("sysId") int sysId);
+
 }

+ 7 - 0
gqy-system/src/main/java/com/gqy/document/service/IDcProductService.java

@@ -11,6 +11,13 @@ import java.util.Map;
 public interface IDcProductService {
 
 
+    /**
+     * 修改产品
+     * @param params
+     * @return
+     */
+    public int update(Map<String, Object> params);
+
     /**
      * 根据id查询产品
      * @param dcpId

+ 81 - 0
gqy-system/src/main/java/com/gqy/document/service/impl/DcProductServiceImpl.java

@@ -43,6 +43,87 @@ public class DcProductServiceImpl implements IDcProductService {
 
 
 
+    /**
+     * 更新产品及其关联信息
+     * @param params 包含产品信息和规格信息的参数
+     * @return 更新成功返回1,失败返回0
+     */
+    public int update(Map<String, Object> params) {
+        try {
+            // 1. 更新产品基本信息
+            Map<String, Object> content = (Map<String, Object>) params.get("content");
+            DcProduct product = new DcProduct();
+            BeanUtils.mapToBean(content, product);
+            dcProductMapper.updateDcProduct(product);
+
+            // 获取关键ID
+            int dcpId = product.getDcp_id();
+            int sysNo = Integer.parseInt(content.get("sys_no").toString());
+            int wrId = Integer.parseInt(content.get("wr_id").toString());
+
+            // 2. 更新工程系统表
+            DcWorkSystem workSystem = new DcWorkSystem();
+            workSystem.setWr_id(wrId);
+            workSystem.setSys_id(sysNo);
+            // 先删除旧关联
+            dcWorkSystemMapper.deleteByWrIdAndSysId(wrId, sysNo);
+            // 插入新关联
+            dcWorkSystemMapper.insertDcWorkSystem(workSystem);
+
+            // 3. 更新系统产品表
+            DcSystemProduct systemProduct = new DcSystemProduct();
+            systemProduct.setSys_no(sysNo);
+            systemProduct.setDcp_id(dcpId);
+            // 先删除旧关联
+            dcSystemProductMapper.deleteBySysNoAndDcpId(sysNo, dcpId);
+            // 插入新关联
+            dcSystemProductMapper.insertDcSystemProduct(systemProduct);
+
+            // 4. 更新规格管理
+            List<Map> specs = (List<Map>) params.get("specs");
+            if (specs != null && !specs.isEmpty()) {
+                // 先删除原有规格
+                dcSpecMapper.deleteByProductId(dcpId);
+
+                // 插入新的规格信息
+                for (Map maps : specs) {
+                    // 保存规格信息表
+                    DcSpec dcSpec = new DcSpec();
+                    dcSpec.setPs_p_id(dcpId);
+                    BeanUtils.mapToBean(maps, dcSpec);
+                    String psNo = maps.get("ps_no").toString();
+                    dcSpec.setPs_no(psNo);
+                    dcSpec.setPs_name(maps.get("ps_name").toString());
+                    dcSpecMapper.insertDcSpec(dcSpec);
+
+                    // 更新规格参数
+                    DcPsParam dcPsParamQuery = new DcPsParam();
+                    dcPsParamQuery.setPsp_mode(psNo);
+                    List<DcPsParam> listDcPsParam = dcPsParamMapper.selectDcPsParamList(dcPsParamQuery);
+                    if (CollectionUtils.isEmpty(listDcPsParam)) {
+                        // 如果不存在则新增规格参数
+                        DcPsParam dcPsParam = new DcPsParam();
+                        BeanUtils.mapToBean(maps, dcPsParam);
+                        dcPsParam.setPsp_mode(psNo);
+                        dcPsParamMapper.insertDcPsParam(dcPsParam);
+                    } else {
+                        // 如果存在则更新规格参数
+                        DcPsParam dcPsParam = listDcPsParam.get(0);
+                        BeanUtils.mapToBean(maps, dcPsParam);
+                        dcPsParamMapper.updateDcPsParam(dcPsParam);
+                    }
+                }
+            }
+            return 1;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
+
+
+
 
 
 

+ 5 - 5
gqy-system/src/main/resources/mapper/document/DcProductMapper.xml

@@ -136,10 +136,10 @@
     <update id="updateDcProduct" parameterType="DcProduct">
         update dc_product
         <trim prefix="SET" suffixOverrides=",">
-            <if test="dcp_name != null">dcp_name = #{dcp_name},</if>
-            <if test="dcp_model != null">dcp_model = #{dcp_model},</if>
-            <if test="dcp_diff != null">dcp_diff = #{dcp_diff},</if>
-            <if test="dcp_p_no != null">dcp_p_no = #{dcp_p_no},</if>
+            <if test="dcp_name != null and dcp_name != ''">dcp_name = #{dcp_name},</if>
+            <if test="dcp_model != null and dcp_model != ''">dcp_model = #{dcp_model},</if>
+            <if test="dcp_diff != null and dcp_diff != ''">dcp_diff = #{dcp_diff},</if>
+            <if test="dcp_p_no != null and dcp_p_no != ''">dcp_p_no = #{dcp_p_no},</if>
             <if test="dcp_status != null">dcp_status = #{dcp_status},</if>
             <if test="dcp_price1 != null">dcp_price1 = #{dcp_price1},</if>
             <if test="dcp_price2 != null">dcp_price2 = #{dcp_price2},</if>
@@ -147,7 +147,7 @@
             <if test="dcp_price4 != null">dcp_price4 = #{dcp_price4},</if>
             <if test="dcp_cost_price != null">dcp_cost_price = #{dcp_cost_price},</if>
             <if test="dcm_id != null">dcm_id = #{dcm_id},</if>
-            <if test="dcp_oa_code != null">dcp_oa_code = #{dcp_oa_code},</if>
+            <if test="dcp_oa_code != null and dcp_oa_code != ''">dcp_oa_code = #{dcp_oa_code},</if>
         </trim>
         where dcp_id = #{dcp_id}
     </update>

+ 5 - 0
gqy-system/src/main/resources/mapper/document/DcSpecMapper.xml

@@ -66,6 +66,11 @@
         where ps_id = #{ps_id}
     </select>
 
+    <delete id="deleteByProductId">
+        delete from dc_p_spec
+        where ps_p_id = #{dcpId}
+    </delete>
+
 
     <delete id="deleteDcSpecById" parameterType="Integer">
         delete from dc_p_spec where ps_id = #{ps_id}

+ 4 - 1
gqy-system/src/main/resources/mapper/document/DcSystemProductMapper.xml

@@ -13,7 +13,10 @@
         <result property="sys_status"   column="sys_status"  />
     </resultMap>
 
-
+    <delete id="deleteBySysNoAndDcpId">
+        delete from dc_system_product
+        where sys_no = #{sysNo} and dcp_id = #{dcpId}
+    </delete>
 
     <!-- 根据产品ID查询工程系统关联信息 -->
     <select id="selectWorkSystemByProductId" parameterType="Long" resultType="java.util.Map">

+ 7 - 1
gqy-system/src/main/resources/mapper/document/DcWorkSystemMapper.xml

@@ -10,6 +10,13 @@
         <result property="sys_id"      column="sys_id"      />
     </resultMap>
 
+
+    <delete id="deleteByWrIdAndSysId">
+        delete from dc_work_system
+        where wr_id = #{wrId} and sys_id = #{sysId}
+    </delete>
+
+
     <sql id="selectDcWorkSystemVo">
         select wr_sys_id, wr_id, sys_id, create_by, create_time, update_by, update_time
         from dc_work_system
@@ -45,5 +52,4 @@
     </insert>
 
 
-
 </mapper>