lyr 8 éve
szülő
commit
9cd0150e4a

+ 1 - 1
src/main/java/com/yihu/wlyy/repository/PeopleNumDao.java

@ -13,5 +13,5 @@ public interface PeopleNumDao extends PagingAndSortingRepository<WlyyPeopleNum,
    @Query("select a.num from WlyyPeopleNum a where a.code = ?1 and a.year = (select max(b.year) from WlyyPeopleNum b where b.code = ?1)")
    int findPeopleNumByCode(String code);
    WlyyPeopleNum findByCodeAndYear(String code,String year);
    WlyyPeopleNum findByCodeAndYear(String code,Integer year);
}

+ 22 - 20
src/main/java/com/yihu/wlyy/service/app/scheduling/DoctorWorkTimeService.java

@ -28,6 +28,7 @@ import java.util.*;
@Transactional
public class DoctorWorkTimeService extends BaseService {
    static Object obj  = new Object();
    @Autowired
    private DoctorWorkTimeDao doctorWorkTimeDao;
    @Autowired
@ -382,32 +383,33 @@ public class DoctorWorkTimeService extends BaseService {
     */
    public boolean setDoctorCurrentConsultTimesRemain(String doctor) {
        try {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            DoctorFamousConsultTimesRemain timesRemain = timesRemainDao.findByDoctorAndConsultDate(doctor, df.format(new Date()));
            synchronized (obj) {
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                DoctorFamousConsultTimesRemain timesRemain = timesRemainDao.findByDoctorAndConsultDate(doctor, df.format(new Date()));
            if (timesRemain != null) {
                int times = timesRemain.getTimesRemain();
                if (timesRemain != null) {
                    int times = timesRemain.getTimesRemain();
                if (times < 1) {
                    throw new Exception("consult-times-error:doctor does not have not consult times remain");
                }
                    if (times < 1) {
                        throw new Exception("consult-times-error:doctor does not have not consult times remain");
                    }
                timesRemain.setTimesRemain(times - 1);
                timesRemainDao.save(timesRemain);
            } else {
                DoctorFamousConsultTimesRemain timesRemainNew = new DoctorFamousConsultTimesRemain();
                WlyyDoctorWorkTime workTime = doctorWorkTimeDao.findDoctorWorkTime(doctor);
                    timesRemain.setTimesRemain(times - 1);
                    timesRemainDao.save(timesRemain);
                } else {
                    DoctorFamousConsultTimesRemain timesRemainNew = new DoctorFamousConsultTimesRemain();
                    WlyyDoctorWorkTime workTime = doctorWorkTimeDao.findDoctorWorkTime(doctor);
                if (workTime == null || workTime.getFamousConsultTimes() < 1) {
                    throw new Exception("consult-times-error:doctor does not have consult times setting");
                }
                    if (workTime == null || workTime.getFamousConsultTimes() < 1) {
                        throw new Exception("consult-times-error:doctor does not have consult times setting");
                    }
                timesRemainNew.setDoctor(doctor);
                timesRemainNew.setConsultDate(df.format(new Date()));
                timesRemainNew.setTimesRemain(workTime.getFamousConsultTimes() - 1);
                timesRemainDao.save(timesRemainNew);
                    timesRemainNew.setDoctor(doctor);
                    timesRemainNew.setConsultDate(df.format(new Date()));
                    timesRemainNew.setTimesRemain(workTime.getFamousConsultTimes() - 1);
                    timesRemainDao.save(timesRemainNew);
                }
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();

+ 4 - 4
src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsService.java

@ -131,11 +131,11 @@ public class StatisticsService extends BaseService {
     */
    public String getSignRate(String endDate, String area, int level) throws Exception {
        long signAmount = getTotalAmount(endDate, area, level, SIGN);
        long serviceNum = peopleNumDao.findPeopleNumByCode(area);
        WlyyPeopleNum peopleNum = peopleNumDao.findByCodeAndYear(area,Calendar.getInstance().get(Calendar.YEAR));
        DecimalFormat df = new DecimalFormat("0.00");
        if (serviceNum > 0) {
            return df.format((signAmount * 1.00) / serviceNum * 100);
        if (peopleNum != null && peopleNum.getNum() > 0) {
            return df.format((signAmount * 1.00) / peopleNum.getNum() * 100);
        } else {
            throw new Exception("户籍人口为0");
        }
@ -151,7 +151,7 @@ public class StatisticsService extends BaseService {
     */
    public String getSignTaskRate(String endDate, String area, int level) throws Exception {
        long signAmount = getTotalAmount(endDate, area, level, SIGN);
        WlyyPeopleNum peopleNum = peopleNumDao.findByCodeAndYear(area,"");
        WlyyPeopleNum peopleNum = peopleNumDao.findByCodeAndYear(area,Calendar.getInstance().get(Calendar.YEAR));
        DecimalFormat df = new DecimalFormat("0.00");
        if (peopleNum != null && peopleNum.getTaskNum() > 0) {