package com.ld.igds.sh.service; import com.alibaba.fastjson.JSONObject; import com.ld.igds.constant.CheckType; import com.ld.igds.log.service.InteStatusLogService; import com.ld.igds.models.CheckItem; import com.ld.igds.models.InteStatusLog; import com.ld.igds.models.MQuality; import com.ld.igds.sh.dto.ApiResponse; import com.ld.igds.sh.dto.Dto1201; import com.ld.igds.sh.param.ApiRequest; import com.ld.igds.sh.param.BaseParam; import com.ld.igds.sh.service.impl.HApiShServiceImpl; import com.ld.igds.sh.util.ApiShConst; import com.ld.igds.sh.util.ApiShUtil; import com.ld.igds.sh.util.RespCodeEnum; import com.ld.igds.sh.util.RespUtil; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 质检数据接口 * * @author chen */ @Slf4j @Service public class ApiShServiceImpl1201 implements ApiShService { @Autowired private HApiShServiceImpl hApiShServiceImpl; @Autowired private InteStatusLogService inteStatusLogService; @Autowired private RedisUtil redisUtil; @Override public String getInterfaceId() { return ApiShConst.API_SH_1201; } @SuppressWarnings("unchecked") @Override public ApiResponse execute(ApiRequest request) { //获取参数信息 String deptId = request.getDeptId(); BaseParam param = JSONObject.parseObject(JSONObject.toJSONString(request.getData()), BaseParam.class); String companyId = ContextUtil.getDefaultCompanyId(); // String key = RedisConst.buildKey(companyId, ApiShConst.API_SH_1112); // Date startTime = (Date) redisUtil.get(key); // if(null == startTime){ // startTime = DateUtils.addDays(param.getEndTime(), -30); // } // redisUtil.set(key, param.getEndTime()); if(null == param.getStartTime()){ param.setStartTime(DateUtils.addDays(param.getEndTime(), -1)); } //查询数据 List dataList = hApiShServiceImpl.listQuality(companyId, param.getDepotId(), param.getStartTime(), param.getEndTime()); //响应数据为空则直接返回响应码2000 if (dataList == null || dataList.isEmpty()) { return RespUtil.error(RespCodeEnum.CODE_2000.getCode(), request); } List list = new ArrayList<>(); List items; Dto1201 dto; InteStatusLog log; InteStatusLog addLog; //封装数据信息 for (MQuality data : dataList) { dto = new Dto1201(); dto.setZjbgdbh(data.getId()); dto.setHwbm(ApiShUtil.getGbDepotId(data.getDepotId()) + "01"); dto.setPznm(StringUtils.isEmpty(data.getFoodVariety())?"0":data.getFoodVariety()); dto.setZznm(ApiShUtil.getGbDepotId(data.getDepotId()).substring(0, 21)); dto.setSkdjbm(StringUtils.isEmpty(data.getFoodLevel())?"0":data.getFoodLevel()); dto.setQysj(DateFormatUtils.format((data.getCheckTime() == null ? new Date() : data.getCheckTime()), "yyyy-MM-dd")); dto.setRkrq(DateFormatUtils.format((data.getCheckTime() == null ? new Date() : data.getCheckTime()), "yyyy-MM-dd")); dto.setJylbbm(StringUtils.isEmpty(data.getType())?"0":data.getType()); dto.setJydw(StringUtils.isEmpty(data.getUser())?"0":data.getUser()); dto.setJyyj("1"); dto.setZblb("2"); //默认设为存储指标 dto.setJyjl(StringUtils.isEmpty(data.getResult())?"0":data.getResult()); items = hApiShServiceImpl.listQualityDetail(data.getId()); if (items != null && items.size() > 0) { String str = ""; String str1 = ""; for (CheckItem item : items) { str += "," + CheckType.getRemark(item.getStandardId()); str1 += "#" + (StringUtils.isEmpty(item.getRemarks())?"0":item.getRemarks()); } dto.setJyxm(str.substring(1)); dto.setZlzbjgpd(str1.substring(1)); }else { dto.setJyxm("0"); dto.setZlzbjgpd("0"); } dto.setShrxm(StringUtils.isEmpty(data.getUser())?"0":data.getUser()); dto.setQyqy(StringUtils.isEmpty(data.getCheckArea())?"0":data.getCheckArea()); dto.setQyrxm(StringUtils.isEmpty(data.getCheckUser())?"0":data.getCheckUser()); dto.setYpsl(data.getYpsl()==null?"0.0":(data.getYpsl() + "")); dto.setDbsl(data.getDbsl() == null?"0.0":data.getDbsl() + ""); dto.setYpdj(StringUtils.isEmpty(data.getYpdj())?"0":data.getYpdj()); dto.setSfzcccnx(StringUtils.isEmpty(data.getNormalYear())?"0":data.getNormalYear()); dto.setLsxz(StringUtils.isEmpty(data.getFoodLevel())?"0":data.getFoodLevel()); dto.setBgbh(data.getId()); dto.setPch(data.getId()); dto.setZhgxsj(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")); //查询日志状态表,设置操作标志 log = inteStatusLogService.getLogByBizId(companyId, ApiShConst.API_SH_1201 + "_" + data.getId()); if (null == log) { addLog = new InteStatusLog(); addLog.setBizId(ApiShConst.API_SH_1201 + "_" + data.getId()); addLog.setCompanyId(companyId); addLog.setBizType(ApiShConst.API_SH_TYPE_QUALITY); addLog.setInterfaceId(ApiShConst.API_SH_1201); addLog.setInterfaceType(ApiShConst.API_SH_TYPE_QUALITY); addLog.setStatus(ApiShConst.API_SH_STATUS_SUCCESS); inteStatusLogService.addInteStatusLog(addLog); } else { dto.setCzbz(ApiShConst.API_SH_U); } list.add(dto); } //响应数据为空则直接返回响应码2000 if (list.isEmpty()) { return RespUtil.error(RespCodeEnum.CODE_2000.getCode(), request); } return RespUtil.success(list, request); } }