Bladeren bron

王子文 目标管理 - bug fixed: 目标措施,选择负责人,系统报错

wangggziwen 3 jaren geleden
bovenliggende
commit
09ef1bf788

+ 18 - 4
master/src/main/java/com/ruoyi/project/plant/controller/TTargetmeasuresController.java

@@ -206,13 +206,25 @@ public class TTargetmeasuresController extends BaseController
                         tTargetyardstick.setAgreementId(tTargetagreement.getId());
                         tTargetyardstick.setTarget(targetlist.getYardstick());
                         String[] insertYardsticks = tTargetmeasures.getMeasures().split("\\.");
-                        tTargetyardstick.setYardstick("-" + insertYardsticks[1]);
+                        // 王子文 2022年8月10日
+                        // 生产环境新增时,抛出ArrayOutOfBondsException
+                        // 解决方案:暂时将setYardstick()方法中数组参数的下标修改为0
+//                        tTargetyardstick.setYardstick("-" + insertYardsticks[1]);
+                        tTargetyardstick.setYardstick("-" + insertYardsticks[0]);
                         tTargetyardstick.setAchieveDate(tTargetmeasures.getExpectedDate());
                         tTargetyardstick.setPartners(targetlist.getPartners());
                         tTargetyardstickService.insertTTargetyardstick(tTargetyardstick);
                     }else {
                         logger.info("此人存在目标协议");
-                        TTargetagreement tTargetagreement = tTargetagreementService.selectTTargetagreementByEmployeeid(r);
+                        // 王子文 2022年8月10日
+                        // 生产环境新增时,抛出TooManyResultsException
+                        // 数据库中存在不同年份数据,导致selectTTargetagreementByEmployeeid(r)的resultType与结果数据类型不一致
+                        // 解决方案:重写接口,将年份加入检索条件
+//                        TTargetagreement tTargetagreement = tTargetagreementService.selectTTargetagreementByEmployeeid(r);
+                        TTargetagreement queryParams = new TTargetagreement();
+                        queryParams.setEmployeeid(r);
+                        queryParams.setYear(tTargetlist.getYear());
+                        TTargetagreement tTargetagreement = tTargetagreementService.selectTTargetagreementByEmployeeidAndYear(queryParams);
                         List<TTargetyardstick> tTargetyardsticks = tTargetyardstickService.selectTTargetyardstickByAgreementId(tTargetagreement.getId());
                         //判断是否存在此条判定标准(0为无,若存在判定标准targetyardstick为此条判定标准)
                         int n = 0;
@@ -229,7 +241,8 @@ public class TTargetmeasuresController extends BaseController
                             tTargetyardstick.setAgreementId(tTargetagreement.getId());
                             tTargetyardstick.setTarget(targetlist.getYardstick());
                             String[] insertYardsticks = tTargetmeasures.getMeasures().split("\\.");
-                            tTargetyardstick.setYardstick("-" + insertYardsticks[1]);
+//                            tTargetyardstick.setYardstick("-" + insertYardsticks[1]);
+                            tTargetyardstick.setYardstick("-" + insertYardsticks[0]);
                             tTargetyardstick.setAchieveDate(tTargetmeasures.getExpectedDate());
                             tTargetyardstick.setPartners(targetlist.getPartners());
                             tTargetyardstickService.insertTTargetyardstick(tTargetyardstick);
@@ -241,7 +254,8 @@ public class TTargetmeasuresController extends BaseController
                             String newY = "";
                             for (String y : yardstick) {
                                 String[] insertYardsticks = tTargetmeasures.getMeasures().split("\\.");
-                                newY = "-" + insertYardsticks[1];
+//                                newY = "-" + insertYardsticks[1];
+                                newY = "-" + insertYardsticks[0];
                                 if (y.equals(newY)) {
                                     o = 1;
                                 }

+ 8 - 0
master/src/main/java/com/ruoyi/project/plant/mapper/TTargetagreementMapper.java

@@ -68,4 +68,12 @@ public interface TTargetagreementMapper
      * @return 结果
      */
     public int deleteTTargetagreementByIds(Long[] ids);
+
+    /**
+     * 查询目标协议
+     *
+     * @param queryParams 检索条件
+     * @return 目标协议
+     */
+    public TTargetagreement selectTTargetagreementByEmployeeidAndYear(TTargetagreement queryParams);
 }

+ 8 - 0
master/src/main/java/com/ruoyi/project/plant/service/ITTargetagreementService.java

@@ -66,4 +66,12 @@ public interface ITTargetagreementService
      * @return 结果
      */
     public int deleteTTargetagreementById(Long id);
+
+    /**
+     * 查询目标协议
+     *
+     * @param queryParams 检索条件
+     * @return 目标协议
+     */
+    public TTargetagreement selectTTargetagreementByEmployeeidAndYear(TTargetagreement queryParams);
 }

+ 11 - 0
master/src/main/java/com/ruoyi/project/plant/service/impl/TTargetagreementServiceImpl.java

@@ -103,4 +103,15 @@ public class TTargetagreementServiceImpl implements ITTargetagreementService
     {
         return tTargetagreementMapper.deleteTTargetagreementById(id);
     }
+
+    /**
+     * 查询目标协议
+     *
+     * @param queryParams 检索条件
+     * @return 目标协议
+     */
+    @Override
+    public TTargetagreement selectTTargetagreementByEmployeeidAndYear(TTargetagreement queryParams) {
+        return tTargetagreementMapper.selectTTargetagreementByEmployeeidAndYear(queryParams);
+    }
 }

+ 6 - 0
master/src/main/resources/mybatis/plant/TTargetagreementMapper.xml

@@ -51,6 +51,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectTTargetagreementVo"/>
         where d.employeeid = #{employeeId}
     </select>
+
+    <select id="selectTTargetagreementByEmployeeidAndYear" parameterType="TTargetagreement" resultMap="TTargetagreementResult">
+        <include refid="selectTTargetagreementVo"/>
+        where d.employeeid = #{employeeid}
+        and d.year = #{year}
+    </select>
         
     <insert id="insertTTargetagreement" parameterType="TTargetagreement" useGeneratedKeys="true" keyProperty="id">
         <selectKey keyProperty="id" resultType="long" order="BEFORE">