xiaofei пре 2 година
родитељ
комит
9f5c24d4ed

+ 11 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -53,6 +53,8 @@ import java.math.BigDecimal;
 import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 import java.util.stream.Collectors;
 
 /**
@@ -66,6 +68,8 @@ import java.util.stream.Collectors;
 public class PrintCommonServiceImpl implements PrintCommonService {
     private final static Logger log = LoggerFactory.getLogger(PrintCommonServiceImpl.class);
 
+    Lock lock = new ReentrantLock();
+
     @Resource
     private DictionaryConfig dictionaryConfig;
 
@@ -1151,7 +1155,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             examStudent.setMajorName(basicStudentResult.getMajorName());
             String prefix = convertUtil.randomNumberPrefix(examShortCode, courseShortCode, map.get(String.valueOf(basicClazzId)), basicCardRule == null ? null : basicCardRule.getExamNumberDigit());
             SerialNumberParams ticketNumberParams = new SerialNumberParams(SystemConstant.NUMBER_CACHE + "ticketNumber-" + schoolId, prefix, StringUtils.isBlank(prefix) ? 8 : basicCardRule.getExamNumberDigit() - prefix.length());
-            examStudent.setTicketNumber(createTempNumber(ticketNumberParams));
+            examStudent.setTicketNumber(createTicketNumber(ticketNumberParams));
             examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
             examStudent.setExtendFields(extendFields);
             examStudent.setCreateId(sysUser.getId());
@@ -1178,7 +1182,12 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
     @Override
     public String createTicketNumber(SerialNumberParams serialNumberParams) {
-        return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
+        try {
+            lock.lock();
+            return convertUtil.getIncre(serialNumberParams.getPrefix(), serialNumberParams.getModel(), serialNumberParams.getDigit());
+        } finally {
+            lock.unlock();
+        }
     }
 
     /**

+ 4 - 2
distributed-print-business/src/main/resources/mapper/ConditionMapper.xml

@@ -212,6 +212,8 @@
             exam_task et ON tsess.school_id = et.school_id
                 AND tsess.paper_number = et.paper_number
                 JOIN
+            sys_user su ON et.user_id = su.id
+                JOIN
             basic_exam be ON et.exam_id = be.id
                 JOIN
             basic_course bc ON et.school_id = bc.school_id
@@ -234,10 +236,10 @@
             </if>
             <if test="dpr != null">
                 <if test="dpr.requestUserId != null">
-                    AND tc.user_id = #{dpr.requestUserId}
+                    AND et.user_id = #{dpr.requestUserId}
                 </if>
                 <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                    AND bc.org_id IN
+                    AND su.org_id IN
                     <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
                         #{item}
                     </foreach>

+ 4 - 6
distributed-print-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml

@@ -40,10 +40,8 @@
             bs.school_id = et.school_id and edc.course_code = et.course_code and edc.paper_number = et.paper_number
         join basic_exam be on
             et.exam_id = be.id
-        join basic_course bc on
-            et.school_id = bc.school_id and et.course_code = bc.code
-        left join teach_course tc on
-            bc.school_id = tc.school_id and bc.id = tc.basic_course_id
+        join sys_user su on
+            et.user_id = su.id
     </sql>
 
     <sql id="footCommonSql">
@@ -71,10 +69,10 @@
             </if>
             <if test="dpr != null">
                 <if test="dpr.requestUserId != null">
-                    AND tc.user_id = #{dpr.requestUserId}
+                    AND et.user_id = #{dpr.requestUserId}
                 </if>
                 <if test="dpr.orgIdSet != null and dpr.orgIdSet != '' and dpr.orgIdSet.size > 0">
-                    AND bc.org_id IN
+                    AND su.org_id IN
                     <foreach collection="dpr.orgIdSet" item="item" index="index" open="(" separator="," close=")">
                         #{item}
                     </foreach>