java110
2023-05-31 dd9759eaa3dabd3d55943fc0c741fd5018d2d76e
service-store/src/main/java/com/java110/store/cmd/scheduleClasses/UpdateScheduleClassesCmd.java
@@ -23,7 +23,9 @@
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.scheduleClassesDay.ScheduleClassesDayDto;
import com.java110.dto.scheduleClasses.ScheduleClassesDto;
import com.java110.dto.scheduleClasses.ScheduleClassesDayDto;
import com.java110.dto.scheduleClasses.ScheduleClassesTimeDto;
import com.java110.intf.store.IScheduleClassesDayV1InnerServiceSMO;
import com.java110.intf.store.IScheduleClassesTimeV1InnerServiceSMO;
import com.java110.intf.store.IScheduleClassesV1InnerServiceSMO;
@@ -39,6 +41,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
 * 类表述:更新
@@ -53,12 +56,10 @@
@Java110Cmd(serviceCode = "scheduleClasses.updateScheduleClasses")
public class UpdateScheduleClassesCmd extends Cmd {
  private static Logger logger = LoggerFactory.getLogger(UpdateScheduleClassesCmd.class);
    private static Logger logger = LoggerFactory.getLogger(UpdateScheduleClassesCmd.class);
    @Autowired
    private IScheduleClassesV1InnerServiceSMO scheduleClassesV1InnerServiceSMOImpl;
    @Autowired
    private IScheduleClassesDayV1InnerServiceSMO scheduleClassesDayV1InnerServiceSMOImpl;
@@ -69,87 +70,90 @@
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "scheduleId", "scheduleId不能为空");
        Assert.hasKeyAndValue(reqJson, "name", "请求报文中未包含name");
        Assert.hasKeyAndValue(reqJson, "scheduleType", "请求报文中未包含scheduleType");
        Assert.hasKeyAndValue(reqJson, "scheduleCycle", "请求报文中未包含scheduleCycle");
        if(!reqJson.containsKey("days")){
        if (!reqJson.containsKey("days")) {
            throw new CmdException("未包含天");
        }
        JSONArray days = reqJson.getJSONArray("days");
        if(days.size() <1){
        if (days.size() < 1) {
            throw new CmdException("未包含天");
        }
        JSONObject day = null;
        JSONArray times = null;
        for(int dayIndex = 0 ; dayIndex < days.size(); dayIndex++){
        for (int dayIndex = 0; dayIndex < days.size(); dayIndex++) {
            day = days.getJSONObject(dayIndex);
            if(!ScheduleClassesDayDto.WORKDAY_NORMAL.equals(day.getString("workday"))){
            if (ScheduleClassesDayDto.WORKDAY_NO.equals(day.getString("workday"))) {
                continue;
            }
            if(!day.containsKey("times")){
            if (!day.containsKey("times")) {
                throw new CmdException("未包时间");
            }
            times = day.getJSONArray("times");
            if(times.size() <1){
            if (times.size() < 1) {
                throw new CmdException("未包时间");
            }
        }
    }
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
       ScheduleClassesPo scheduleClassesPo = BeanConvertUtil.covertBean(reqJson, ScheduleClassesPo.class);
        ScheduleClassesDto scheduleClassesDto = new ScheduleClassesDto();
        scheduleClassesDto.setScheduleId(reqJson.getString("scheduleId"));
        List<ScheduleClassesDto> scheduleClassesDtos = scheduleClassesV1InnerServiceSMOImpl.queryScheduleClassess(scheduleClassesDto);
        Assert.listOnlyOne(scheduleClassesDtos, "查询排班信息错误!");
        ScheduleClassesPo scheduleClassesPo = BeanConvertUtil.covertBean(reqJson, ScheduleClassesPo.class);
        int flag = scheduleClassesV1InnerServiceSMOImpl.updateScheduleClasses(scheduleClassesPo);
        if (flag < 1) {
            throw new CmdException("更新数据失败");
        }
        ScheduleClassesDayPo scheduleClassesDayPo = new ScheduleClassesDayPo();
        scheduleClassesDayPo.setScheduleId(scheduleClassesPo.getScheduleId());
        flag = scheduleClassesDayV1InnerServiceSMOImpl.deleteScheduleClassesDay(scheduleClassesDayPo);
        if (flag < 1) {
            throw new CmdException("更新数据失败");
        ScheduleClassesDayDto scheduleClassesDayDto = new ScheduleClassesDayDto();
        scheduleClassesDayDto.setScheduleId(scheduleClassesDtos.get(0).getScheduleId());
        List<ScheduleClassesDayDto> scheduleClassesDayDtos = scheduleClassesDayV1InnerServiceSMOImpl.queryScheduleClassesDays(scheduleClassesDayDto);
        if (scheduleClassesDayDtos != null && scheduleClassesDayDtos.size() > 0) {
            ScheduleClassesDayPo scheduleClassesDayPo = new ScheduleClassesDayPo();
            scheduleClassesDayPo.setScheduleId(scheduleClassesPo.getScheduleId());
            flag = scheduleClassesDayV1InnerServiceSMOImpl.deleteScheduleClassesDay(scheduleClassesDayPo);
            if (flag < 1) {
                throw new CmdException("更新数据失败");
            }
        }
        ScheduleClassesTimePo scheduleClassesTimePo = new ScheduleClassesTimePo();
        scheduleClassesTimePo.setScheduleId(scheduleClassesPo.getScheduleId());
        flag = scheduleClassesTimeV1InnerServiceSMOImpl.deleteScheduleClassesTime(scheduleClassesTimePo);
        if (flag < 1) {
            throw new CmdException("更新数据失败");
        ScheduleClassesTimeDto scheduleClassesTimeDto = new ScheduleClassesTimeDto();
        scheduleClassesTimeDto.setScheduleId(scheduleClassesDtos.get(0).getScheduleId());
        //scheduleClassesTimeDto.setDayId(scheduleClassesDayDtos.get(0).getDayId());
        List<ScheduleClassesTimeDto> scheduleClassesTimeDtos = scheduleClassesTimeV1InnerServiceSMOImpl.queryScheduleClassesTimes(scheduleClassesTimeDto);
        if (scheduleClassesTimeDtos != null && scheduleClassesTimeDtos.size() >0) {
            ScheduleClassesTimePo scheduleClassesTimePo = new ScheduleClassesTimePo();
            scheduleClassesTimePo.setScheduleId(scheduleClassesPo.getScheduleId());
            flag = scheduleClassesTimeV1InnerServiceSMOImpl.deleteScheduleClassesTime(scheduleClassesTimePo);
            if (flag < 1) {
                throw new CmdException("更新数据失败");
            }
        }
        JSONArray days = reqJson.getJSONArray("days");
        JSONObject day = null;
        JSONObject time = null;
        JSONArray times = null;
        for(int dayIndex = 0 ; dayIndex < days.size(); dayIndex++){
        for (int dayIndex = 0; dayIndex < days.size(); dayIndex++) {
            day = days.getJSONObject(dayIndex);
            scheduleClassesDayPo = new ScheduleClassesDayPo();
            ScheduleClassesDayPo scheduleClassesDayPo = new ScheduleClassesDayPo();
            scheduleClassesDayPo.setScheduleId(scheduleClassesPo.getScheduleId());
            scheduleClassesDayPo.setDayId(GenerateCodeFactory.getGeneratorId("11"));
            scheduleClassesDayPo.setDay(day.getString("day"));
            scheduleClassesDayPo.setScheduleId(scheduleClassesPo.getScheduleId());
            scheduleClassesDayPo.setWeekFlag(StringUtil.isEmpty(day.getString("weekFlag"))?"1":day.getString("weekFlag"));
            scheduleClassesDayPo.setWeekFlag(StringUtil.isEmpty(day.getString("weekFlag")) ? "1" : day.getString("weekFlag"));
            scheduleClassesDayPo.setWorkday(day.getString("workday"));
            flag = scheduleClassesDayV1InnerServiceSMOImpl.saveScheduleClassesDay(scheduleClassesDayPo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
            times = day.getJSONArray("times");
            for(int timeIndex = 0 ;timeIndex < times.size();timeIndex++){
            for (int timeIndex = 0; timeIndex < times.size(); timeIndex++) {
                time = times.getJSONObject(timeIndex);
                scheduleClassesTimePo = new ScheduleClassesTimePo();
                ScheduleClassesTimePo scheduleClassesTimePo = new ScheduleClassesTimePo();
                scheduleClassesTimePo.setScheduleId(scheduleClassesPo.getScheduleId());
                scheduleClassesTimePo.setDayId(scheduleClassesDayPo.getDayId());
                scheduleClassesTimePo.setEndTime(time.getString("endTime"));
                scheduleClassesTimePo.setScheduleId(scheduleClassesPo.getScheduleId());
@@ -161,7 +165,6 @@
                }
            }
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
}