1098226878
2021-08-26 57a2573e0e5834e12be339657e813f925be86c68
service-report/src/main/java/com/java110/report/bmo/reportInfoAnswerValue/impl/SaveReportInfoAnswerValueBMOImpl.java
@@ -4,9 +4,15 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.reportInfoAnswerValue.ReportInfoAnswerValueDto;
import com.java110.dto.reportInfoSetting.ReportInfoSettingDto;
import com.java110.dto.reportInfoSettingTitleValue.ReportInfoSettingTitleValueDto;
import com.java110.dto.user.UserDto;
import com.java110.intf.report.IReportInfoAnswerInnerServiceSMO;
import com.java110.intf.report.IReportInfoAnswerValueInnerServiceSMO;
import com.java110.intf.report.IReportInfoSettingInnerServiceSMO;
import com.java110.intf.report.IReportInfoSettingTitleValueInnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.po.reportInfoAnswer.ReportInfoAnswerPo;
import com.java110.po.reportInfoAnswerValue.ReportInfoAnswerValuePo;
import com.java110.po.userQuestionAnswer.UserQuestionAnswerPo;
@@ -31,94 +37,135 @@
    @Autowired
    private IReportInfoSettingInnerServiceSMO reportInfoSettingInnerServiceSMOImpl;
    @Autowired
    private IReportInfoAnswerInnerServiceSMO reportInfoAnswerInnerServiceSMOImpl;
    @Autowired
    private IUserInnerServiceSMO userInnerServiceSMOImpl;
    @Autowired
    private IReportInfoSettingTitleValueInnerServiceSMO reportInfoSettingTitleValueInnerServiceSMOImpl;
    /**
     * 添加小区信息
     *
     * @param reportInfoAnswerValuePo
     * @param
     * @return 订单服务能够接受的报文
     */
    @Java110Transactional
    public ResponseEntity<String> save(ReportInfoAnswerValuePo reportInfoAnswerValuePo, JSONArray questionAnswerTitles) {
        ReportInfoSettingDto reportInfoSettingDto = new ReportInfoSettingDto();
        reportInfoSettingDto.setCommunityId(reportInfoAnswerValuePo.getCommunityId());
        reportInfoSettingDto.setSettingId(reportInfoAnswerValuePo.getSettingId());
        List<ReportInfoSettingDto> reportInfoSettingDtos = reportInfoSettingInnerServiceSMOImpl.queryReportInfoSettings(reportInfoSettingDto);
        Assert.listOnlyOne(reportInfoSettingDtos, "疫情问卷不存在");
    public ResponseEntity<String> save(JSONObject reqJson,String userId) {
      /*  JSONObject titleObj = null;
        ReportInfoAnswerValuePo tmpUserUserQuestionAnswerValue = null;
        List<ReportInfoAnswerValuePo> tmpUserUserQuestionAnswerValues = new ArrayList<>();
        ReportInfoAnswerPo userQuestionAnswerPo = new ReportInfoAnswerPo();
        if(StringUtil.isEmpty(userQuestionAnswerValuePo.getUserQaId()) || userQuestionAnswerValuePo.getUserQaId().startsWith("-")){
            userQuestionAnswerPo.setUserQaId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_userQaId));
        }else{
            userQuestionAnswerPo.setUserQaId(userQuestionAnswerValuePo.getUserQaId());
       /* UserDto userDto = new UserDto();
        userDto.setUserId(userId);
        List<UserDto> userDtoList = userInnerServiceSMOImpl.getUsers(userDto);
        if (userDtoList == null || userDtoList.size() < 1) {
            throw new IllegalArgumentException("查询用户信息失败!");
        }*/
        ReportInfoAnswerPo reportInfoAnswerPo = new ReportInfoAnswerPo();
        reportInfoAnswerPo.setUserAnId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_userAnId));
        reportInfoAnswerPo.setSettingId(reqJson.getString("settingId"));
        reportInfoAnswerPo.setPersonId("-1");
        reportInfoAnswerPo.setPersonName("未知");
        reportInfoAnswerPo.setCommunityId(reqJson.getString("communityId"));
        int flag = reportInfoAnswerInnerServiceSMOImpl.saveReportInfoAnswer(reportInfoAnswerPo);
        if (flag < 1) {
            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存失败");
        }
        JSONArray questionAnswerTitles = reqJson.getJSONArray("questionAnswerTitles");
        if (questionAnswerTitles == null || questionAnswerTitles.size() < 1) {
            throw new IllegalArgumentException("未包含题目及答案");
        }
        JSONObject titleObj = null;
        for (int questionAnswerTitleIndex = 0; questionAnswerTitleIndex < questionAnswerTitles.size(); questionAnswerTitleIndex++) {
            titleObj = questionAnswerTitles.getJSONObject(questionAnswerTitleIndex);
            tmpUserUserQuestionAnswerValue = new ReportInfoAnswerValuePo();
            tmpUserUserQuestionAnswerValue.setAnswerType(userQuestionAnswerValuePo.getAnswerType());
            tmpUserUserQuestionAnswerValue.setObjId(userQuestionAnswerValuePo.getObjId());
            tmpUserUserQuestionAnswerValue.setObjType(userQuestionAnswerValuePo.getObjType());
            tmpUserUserQuestionAnswerValue.setPersonId(userQuestionAnswerValuePo.getPersonId());
            tmpUserUserQuestionAnswerValue.setQaId(userQuestionAnswerValuePo.getQaId());
            tmpUserUserQuestionAnswerValue.setScore("0");
            tmpUserUserQuestionAnswerValue.setTitleId(titleObj.getString("titleId"));
            tmpUserUserQuestionAnswerValue.setUserQaId(userQuestionAnswerPo.getUserQaId());
            tmpUserUserQuestionAnswerValue.setUserTitleId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_userTitleId));
            if ("3003".equals(titleObj.getString("titleType"))) {
                tmpUserUserQuestionAnswerValue.setValueId("999");
                tmpUserUserQuestionAnswerValue.setValueContent(titleObj.getString("valueContent"));
            } else {
                tmpUserUserQuestionAnswerValue.setValueId(titleObj.getString("valueContent"));
                tmpUserUserQuestionAnswerValue.setValueContent(titleObj.getString("valueContent"));
            String titleType = titleObj.getString("titleType");
            if(ReportInfoAnswerValueDto.TITLETYPE_CHECKBOX.equals(titleType)){
                JSONArray valueContent = titleObj.getJSONArray("valueContent");
                if(valueContent == null || valueContent.size() < 1){
                    throw new IllegalArgumentException("多选题目未包含答案");
                }
                for(int checkBoxIndex = 0;checkBoxIndex<valueContent.size();checkBoxIndex++){
                    ReportInfoAnswerValuePo reportInfoAnswerValuePo = new ReportInfoAnswerValuePo();
                    reportInfoAnswerValuePo.setAnValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_anValueId));
                    reportInfoAnswerValuePo.setUserAnId(reportInfoAnswerPo.getUserAnId());
                    reportInfoAnswerValuePo.setValueId(valueContent.getString(checkBoxIndex));
                    reportInfoAnswerValuePo.setSettingId(reqJson.getString("settingId"));
                    reportInfoAnswerValuePo.setTitleId(titleObj.getString("titleId"));
                    reportInfoAnswerValuePo.setCommunityId(titleObj.getString("communityId"));
                    ReportInfoSettingTitleValueDto reportInfoSettingTitleValueDto = new ReportInfoSettingTitleValueDto();
                    reportInfoSettingTitleValueDto.setCommunityId(titleObj.getString("communityId"));
                    reportInfoSettingTitleValueDto.setTitleId(titleObj.getString("titleId"));
                    reportInfoSettingTitleValueDto.setValueId(valueContent.getString(checkBoxIndex));
                    List<ReportInfoSettingTitleValueDto> reportInfoSettingTitleValueDtos = reportInfoSettingTitleValueInnerServiceSMOImpl.queryReportInfoSettingTitleValues(reportInfoSettingTitleValueDto);
                    if(reportInfoSettingTitleValueDtos == null || reportInfoSettingTitleValueDtos.size() < 1){
                        throw new IllegalArgumentException("多选题目未查询到答案信息");
                    }
                   if (valueContent.getString(checkBoxIndex).equals(reportInfoSettingTitleValueDtos.get(0).getValueId())) {
                       reportInfoAnswerValuePo.setValueContent(reportInfoSettingTitleValueDtos.get(0).getQaValue());
                   }
                    flag = reportInfoAnswerValueInnerServiceSMOImpl.saveReportInfoAnswerValue(reportInfoAnswerValuePo);
                    if (flag < 1) {
                        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存失败");
                    }
                }
            }
            tmpUserUserQuestionAnswerValues.add(tmpUserUserQuestionAnswerValue);
            if(ReportInfoAnswerValueDto.TITLETYPE_RADIO.equals(titleType)){
                String valueContent = titleObj.getString("valueContent");
                if(valueContent == null || "".equals(valueContent)){
                    throw new IllegalArgumentException("单选题目未包含答案");
                }
                ReportInfoAnswerValuePo reportInfoAnswerValuePo = new ReportInfoAnswerValuePo();
                reportInfoAnswerValuePo.setAnValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_anValueId));
                reportInfoAnswerValuePo.setUserAnId(reportInfoAnswerPo.getUserAnId());
                reportInfoAnswerValuePo.setValueId(valueContent);
                reportInfoAnswerValuePo.setTitleId(titleObj.getString("titleId"));
                reportInfoAnswerValuePo.setCommunityId(titleObj.getString("communityId"));
                reportInfoAnswerValuePo.setSettingId(reqJson.getString("settingId"));
                ReportInfoSettingTitleValueDto reportInfoSettingTitleValueDto = new ReportInfoSettingTitleValueDto();
                reportInfoSettingTitleValueDto.setCommunityId(titleObj.getString("communityId"));
                reportInfoSettingTitleValueDto.setTitleId(titleObj.getString("titleId"));
                reportInfoSettingTitleValueDto.setValueId(valueContent);
                List<ReportInfoSettingTitleValueDto> reportInfoSettingTitleValueDtos = reportInfoSettingTitleValueInnerServiceSMOImpl.queryReportInfoSettingTitleValues(reportInfoSettingTitleValueDto);
                if(reportInfoSettingTitleValueDtos == null || reportInfoSettingTitleValueDtos.size() < 1){
                    throw new IllegalArgumentException("多选题目未查询到答案信息");
                }
                if (valueContent.equals(reportInfoSettingTitleValueDtos.get(0).getValueId())) {
                    reportInfoAnswerValuePo.setValueContent(reportInfoSettingTitleValueDtos.get(0).getQaValue());
                }
                flag = reportInfoAnswerValueInnerServiceSMOImpl.saveReportInfoAnswerValue(reportInfoAnswerValuePo);
                if (flag < 1) {
                    return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存失败");
                }
            }
            if(ReportInfoAnswerValueDto.ITLETYPE_TEXTAREA.equals(titleType)){
                String valueContent = titleObj.getString("valueContent");
                if(valueContent == null || "".equals(valueContent)){
                    throw new IllegalArgumentException("单选题目未包含答案");
                }
                ReportInfoAnswerValuePo reportInfoAnswerValuePo = new ReportInfoAnswerValuePo();
                reportInfoAnswerValuePo.setAnValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_anValueId));
                reportInfoAnswerValuePo.setUserAnId(reportInfoAnswerPo.getUserAnId());
                reportInfoAnswerValuePo.setValueId(valueContent);
                reportInfoAnswerValuePo.setSettingId(reqJson.getString("settingId"));
                reportInfoAnswerValuePo.setTitleId(titleObj.getString("titleId"));
                reportInfoAnswerValuePo.setCommunityId(titleObj.getString("communityId"));
                reportInfoAnswerValuePo.setValueContent(valueContent);
                flag = reportInfoAnswerValueInnerServiceSMOImpl.saveReportInfoAnswerValue(reportInfoAnswerValuePo);
                if (flag < 1) {
                    return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存失败");
                }
            }
            if (flag > 0) {
                return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
            }
        }
        int flag = userQuestionAnswerValueInnerServiceSMOImpl.saveUserQuestionAnswerValue(tmpUserUserQuestionAnswerValues);
        if (flag < 0) {
            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
        }
        //如果是领导 评价 直接返回
        String answerType = userQuestionAnswerValuePo.getAnswerType();
        if("2003".equals(answerType)){
            userQuestionAnswerPo.setState("1202");
            userQuestionAnswerInnerServiceSMOImpl.updateUserQuestionAnswer(userQuestionAnswerPo);
            return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
        }
        userQuestionAnswerPo.setEvaluationScore("0");
        userQuestionAnswerPo.setObjId(userQuestionAnswerValuePo.getObjId());
        userQuestionAnswerPo.setObjType(userQuestionAnswerValuePo.getObjType());
        userQuestionAnswerPo.setPersonId(userQuestionAnswerValuePo.getPersonId());
        userQuestionAnswerPo.setQaId(userQuestionAnswerValuePo.getQaId());
        userQuestionAnswerPo.setScore("0");
        if ("2002".equals(questionAnswerDtos.get(0).getQaType())) {
            userQuestionAnswerPo.setState("1201");
        } else {
            userQuestionAnswerPo.setState("1202");
        }
        flag = userQuestionAnswerInnerServiceSMOImpl.saveUserQuestionAnswer(userQuestionAnswerPo);
        if (flag < 0) {
            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
        }
*/
        reportInfoAnswerValuePo.setAnValueId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_anValueId));
        int flag = reportInfoAnswerValueInnerServiceSMOImpl.saveReportInfoAnswerValue(reportInfoAnswerValuePo);
        if (flag > 0) {
        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
        }
        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
    }