xiaochen 2 年 前
コミット
f798d5863b

+ 12 - 0
xpyy/src/main/java/com/xpyy/xpyy/controller/MplanController.java

@@ -8,6 +8,7 @@ import com.xpyy.xpyy.excel.ExcelUtils;
 import com.xpyy.xpyy.service.CustomerService;
 import com.xpyy.xpyy.service.MplanService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -94,6 +95,7 @@ public class MplanController {
      * @throws Exception
      */
     @PostMapping("/import")
+    @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> importExcel(@RequestPart("file") MultipartFile file, HttpServletRequest request) throws Exception{
         Map<String, Object> map = new HashMap<>();
         JSONArray array = ExcelUtils.readMultipartFile(file);
@@ -108,6 +110,16 @@ public class MplanController {
             mplan.setModeCode(ModeCode);
             mplan.setPlanNum(jsonObject.get("数量").toString());
             mplan.setPlandate(jsonObject.get("日期").toString());
+            if (CusCode == null || CusCode.equals("")){
+                map.put("msg", "500");
+                map.put("errMsg", "客户不存在,请录入客户信息");
+                return map;
+            }
+            if (ModeCode == null || ModeCode.equals("")){
+                map.put("msg", "500");
+                map.put("errMsg", "客户没有录入改型号信息,请录入客户型号信息");
+                return map;
+            }
             mplanService.importExcel(mplan);
         }
         map.put("msg", "200");

+ 3 - 0
xpyy/src/main/java/com/xpyy/xpyy/mapper/MplanMapper.java

@@ -2,6 +2,7 @@ package com.xpyy.xpyy.mapper;
 
 import com.xpyy.xpyy.entity.Mplan;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
@@ -23,4 +24,6 @@ public interface MplanMapper {
     List<Map<String, Object>> getmplanExport(Mplan mplan);
 
     List<Mplan> getMplanlistRepetition(Mplan mplan);
+
+    List<Mplan> getMplanlistRepetitionZ(Mplan mplan);
 }

+ 22 - 4
xpyy/src/main/java/com/xpyy/xpyy/service/impl/MplanServiceImpl.java

@@ -9,6 +9,7 @@ import com.xpyy.xpyy.service.MplanService;
 import com.xpyy.xpyy.util.SnowflakeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -171,18 +172,35 @@ public class MplanServiceImpl implements MplanService {
      * 生产计划子表信息导入
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void importExcel(Mplan mplan) {
-        // mplan.setPlandate(jsonObject.get("日期").toString());
         //查询父表信息是否有重复
         List<Mplan> list = mplanMapper.getMplanlistRepetition(mplan);
+        //判断子表信息是否重复
+        List<Mplan> list1 = mplanMapper.getMplanlistRepetitionZ(mplan);
         if (list.size() > 0){
-            //添加子表信息
-            mplan.setPlansnum(codeGenerateZ());
-            mplanMapper.addMplanZ(mplan);
+            if (list1.size() > 0){
+                Mplan mplan1 = new Mplan();
+                mplan1.setPlansnum(list1.get(0).getPlansnum());
+                //删除子表信息
+                mplanMapper.delMplan(mplan1);
+                //添加子表信息
+                mplan.setPlanNo(list.get(0).getPlanNo());
+                mplan.setPlansnum(codeGenerateZ());
+                mplanMapper.addMplanZ(mplan);
+            }else {
+                //添加子表信息
+                mplan.setPlanNo(list.get(0).getPlanNo());
+                mplan.setPlansnum(codeGenerateZ());
+                mplanMapper.addMplanZ(mplan);
+            }
         }else {
             //添加主表信息
             mplan.setPlanNo(codeGenerate());
             mplanMapper.addMplan(mplan);
+            //添加子表信息
+            mplan.setPlansnum(codeGenerateZ());
+            mplanMapper.addMplanZ(mplan);
         }
     }
 

+ 14 - 0
xpyy/src/main/resources/mapper/MplanMapper.xml

@@ -85,4 +85,18 @@
     <select id="getMplanlistRepetition" resultType="com.xpyy.xpyy.entity.Mplan">
         select PlanNo,cCusCode,plandate from xp_mplan where plandate = #{plandate}
     </select>
+    <!--判断子表信息是否重复-->
+    <select id="getMplanlistRepetitionZ" resultType="com.xpyy.xpyy.entity.Mplan">
+        select
+        a.PlanNo,
+        a.Plansnum,
+        a.CusCode,
+        a.ModeCode,
+        a.flag,
+        a.Createtime,
+        a.CreatePerson,
+        a.PlanNum
+        from xp_mplans a
+        where CusCode = #{CusCode} and ModeCode = #{ModeCode}
+    </select>
 </mapper>