package com.cxfws.gkjyxkgl.service.impl; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.LinkedList; import java.util.List; import javax.annotation.Resource; import javax.jws.WebService; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder.In; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import javax.xml.ws.WebServiceContext; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import com.cxfws.config.utils.CxfwsUtils; import com.cxfws.gkjyxkgl.service.IXkzyxWebService; import com.cxfws.gkjyxkgl.service.vo.XkzyxfVo; import com.xt.jygl.accessory.entity.AccessoryEntity; import com.xt.jygl.accessory.service.AccessoryService; import com.xt.jygl.common.BaseWebCtl; import com.xt.jygl.common.Constants; import com.xt.jygl.gkjcxx.gk.entity.GkEntity; import com.xt.jygl.gkjcxx.gk.service.GkService; import com.xt.jygl.gkjcxx.gq.entity.GqEntity; import com.xt.jygl.gkjcxx.gq.service.GqService; import com.xt.jygl.gkjcxx.mt.entity.MtEntity; import com.xt.jygl.gkjcxx.mt.service.MtService; import com.xt.jygl.gkjcxx.zyq.entity.ZyqEntity; import com.xt.jygl.gkjcxx.zyq.service.ZyqService; import com.xt.jygl.gkjygl.gkjyr.jyrbw.service.BwService; import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.BwEntity; import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.entity.GkjyrEntity; import com.xt.jygl.gkjygl.gkjyr.jyrjbxx.service.GkjyrService; import com.xt.jygl.gkjygl.gkjyr.xkzxx.entity.XkzxxEntity; import com.xt.jygl.gkjygl.gkjyr.xkzxx.service.XkzxxService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkbg.service.XkzbgService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkbg.service.XkzbgfjService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.entity.XkzjyfwEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.entity.XkzsqglbEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.entity.XkzsqzscsEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.entity.XzjydyEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XkzjyfwService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XkzsqService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XkzsqfjService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XkzsqglbService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XkzsqzscsService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.service.XzjydyService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxksq.vo.XkzsqfjVo; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.entity.XkzyxEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.entity.XkzyxfjEntity; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.service.XkzyxService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.service.XkzyxfjService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.service.XkzyxjdsService; import com.xt.jygl.gkjygl.gkjyxkgl.gkjyxkyx.vo.XkzyxVo; import com.xt.jygl.workflow.entity.TaskInfoEntity; import com.xt.jygl.workflow.service.TaskInfoService; import com.xt.jygl.workflow.service.WorkflowMangerService; import com.xtframe.sec.common.BaseEntity; import com.xtframe.sec.common.QueryService; import com.xtframe.sec.user.dao.UserDao; import com.xtframe.sec.user.entity.UserEntity; import com.xtframe.util.StringUtils; @Service("xkzyxWebService") @WebService(targetNamespace = "http://service.web.jsjty.com/", portName = "xkzyxWebServicePort", serviceName = "xkzyxWebService") public class XkzyxWebService extends BaseWebCtl implements IXkzyxWebService { @Autowired private QueryService query; @Autowired private GkjyrService gkjyrService; @Autowired private AccessoryService accessoryService; @Autowired private XkzsqglbService xkzsqglbService; @Autowired private XkzsqzscsService xkzsqzscsService; @Autowired private XkzyxfjService xkzyxfjService; @Autowired private XkzjyfwService xkzjyfwService; @Autowired private XkzyxService xkzyxService; @Autowired private GkService gkService; @Autowired private GqService gqService; @Autowired private MtService mtService; @Autowired private ZyqService zyqService; @Autowired private BwService bwService; @Autowired private WorkflowMangerService workService; @Autowired private TaskInfoService taskInfoService; @Autowired private XkzyxjdsService xkzyxjdsService; @Autowired private XkzxxService xkzxxService; @Autowired private XzjydyService xzjydyService; @Autowired private XkzsqService xkzsqService; @Autowired private XkzbgService xkzbgService; @Autowired private XkzbgfjService xkzbgfjService; @Autowired private XkzsqfjService xkzsqfjService; @Resource private WebServiceContext wscontext; @Autowired private UserDao userdao; @Override public String findXkzyx(final String szdid,final String szgkid,final String szgqid,final String gkjyr,final String fddbr,final String bgdd) { if (!this.checkUser()){ return BaseWebCtl.NOLOGIN; } // 查询条件 Specification spec = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) { List list = new ArrayList(); if (StringUtils.isNotEmpty(szdid)) { list.add(cb.like(root.get("szd").get("id").as(String.class), "%" + szdid + "%")); } if (StringUtils.isNotEmpty(szgkid)) { list.add(cb.like(root.get("szgk").get("id").as(String.class), "%" + szgkid + "%")); } if (StringUtils.isNotEmpty(szgqid)) { list.add(cb.like(root.get("szgq").get("id").as(String.class), "%" + szgqid + "%")); } if (StringUtils.isNotEmpty(gkjyr)) { list.add(cb.like(root.get("jyrmc").as(String.class), "%" + gkjyr + "%")); } if (StringUtils.isNotEmpty(fddbr)) { list.add(cb.like(root.get("fddbr").as(String.class), "%" + fddbr + "%")); } if (StringUtils.isNotEmpty(bgdd)) { list.add(cb.like(root.get("bgdd").as(String.class), "%" + bgdd + "%")); } // 经营人只能查看自己企业下的数据,非经营人只能查看自己所在地的数据 if (isJyr()) { list.add(cb.like(root.get("jyrid").as(String.class), "%" + getSsjyr().getId() + "%")); } else { // list.add(cb.like(root.get("szd").get("id").as(String.class), // "%" + getUser().getSzd().getId() + "%")); In in = cb.in(root.get("szgq").get("id").as(String.class)); List gqlist = getGq(); if (gqlist != null && gqlist.size() > 0) { for (int i = 0; i < gqlist.size(); i++) { in.value(gqlist.get(i)); } list.add(in); } } list.add(cb.notEqual(root.get("recordStatus").as(Integer.class), BaseEntity.RECORD_STATE_DELETE)); return cb.and(list.toArray(new Predicate[] {})); } }; List list = query.findAll(spec,XkzyxEntity.class); List voList = new ArrayList(); for (XkzyxEntity entity : list) { XkzyxVo vo = new XkzyxVo(); if (entity != null) { BeanUtils.copyProperties(entity, vo); if (entity.getRecordStatus() != 9) { if ((xkzyxService.getTaskByUserAndBusKey(getUser().getId().toString(), entity.getId().toString()) != null) || xkzyxService.getCandidateTaskByUserAndBusKey(getUser().getId().toString(), entity.getId().toString()) != null) { List lists = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(entity.getId(), XkzyxEntity.PROCESS_DEFINITION_KEY); if (lists != null & lists.size() > 0) { TaskInfoEntity taskinfo = lists.get(0); if ("申请".equals(taskinfo.getCurrName())) { vo.setTaskState("TH"); } else { vo.setTaskState(Constants.IS_MY_TASK); } } } if(!isJyr()){ XkzxxEntity xkz = xkzxxService.findByOpid(entity.getId(), "13"); if (xkz != null) { vo.setOpflag("1"); } } voList.add(vo); } } } return Object2JsonStr(voList); } @Override public String findOne(String id) { if (!this.checkUser()){ return BaseWebCtl.NOLOGIN; } XkzyxfVo xkzyxfvo = new XkzyxfVo(); String opflag=""; XkzyxEntity xkzyentity = xkzyxService.findOne(id); List qtfjvoList = new ArrayList(); List acclist = accessoryService.queryBySsidAndSstype(id, "xkzyxqtfj"); for (int i = 0; i < acclist.size(); i++) { XkzsqfjVo vo = new XkzsqfjVo(); vo.setQtfjmc(acclist.get(i).getName()); vo.setQtfjid(acclist.get(i).getId()); qtfjvoList.add(vo); } if (xkzyentity != null) { List lists = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(id, XkzyxEntity.PROCESS_DEFINITION_KEY); if (lists != null & lists.size() > 0) { TaskInfoEntity taskinfo = lists.get(0); if ("材料审查".equals(taskinfo.getCurrName())) { opflag = "1"; } else if ("核查".equals(taskinfo.getCurrName())) { opflag = "2"; } else if ("复核".equals(taskinfo.getCurrName())) { opflag = "3"; } else if ("审批".equals(taskinfo.getCurrName())) { opflag = "4"; } } List jyfwlist = xkzjyfwService.findByJyrid(xkzyentity.getJyrid()); List jyfwids = new ArrayList(); String jyfwstr = ""; @SuppressWarnings("unused") String jydystr = ""; for (int i = 0; i < jyfwlist.size(); i++) { XkzjyfwEntity entity = jyfwlist.get(i); jyfwstr += entity.getFjdmc() + entity.getJyfwmc() + "("; String jydy = "(" + entity.getFjdmc() + entity.getJyfwmc() + ")"; String str = ""; if (!StringUtils.isEmpty(entity.getGkid())) { GkEntity gk = gkService.findOne(entity.getGkid()); if (gk != null) { str = str + gk.getGkmc() + ","; } } if (!StringUtils.isEmpty(entity.getGqid())) { GqEntity gq = gqService.findOne(entity.getGqid()); if (gq != null) { str = str + gq.getGqmc() + ","; } } if (!StringUtils.isEmpty(entity.getZyqid())) { ZyqEntity zyq = zyqService.findOne(entity.getZyqid()); if (zyq != null) { str = str + zyq.getZyqmc() + ","; } } if (!StringUtils.isEmpty(entity.getMtid())) { MtEntity mt = mtService.findOne(entity.getMtid()); if (mt != null) { str = str + mt.getMtmc(); } } if (!StringUtils.isEmpty(entity.getBwid())) { BwEntity bw = bwService.findOne(entity.getBwid()); if (bw != null) { str = str + bw.getBwmc(); } } if (str != null && str.endsWith(",")) { str = str.substring(0, str.length() - 1); } jyfwstr = jyfwstr + str + ")
"; jydystr += str + jydy + "
"; jyfwids.add(entity.getJyfwid()); } List list = fjlist(jyfwids); if (list.size() > 0 && list != null) { List fjList = new ArrayList(); for (int i = 0; i < list.size(); i++) { XkzsqzscsEntity entity = xkzsqzscsService.findOne(list.get(i).toString()); fjList.add(entity); } List voList = new ArrayList(); List xkzfjList = xkzyxfjService.findBySqid(id); for (int i = 0; i < fjList.size(); i++) { XkzsqzscsEntity entity = fjList.get(i); XkzsqfjVo vo = new XkzsqfjVo(); if (entity != null) { BeanUtils.copyProperties(entity, vo); if (entity.getRecordStatus() != 9) { for (XkzyxfjEntity fj : xkzfjList) { if ((i + 1) == fj.getSortno()) { vo.setFjid(fj.getFjid()); vo.setFjmc(fj.getFjmc()); vo.setId(fj.getId()); break; } } voList.add(vo); } } } xkzyxfvo.setEntitylist(voList); } } xkzyxfvo.setOpflag(opflag); xkzyxfvo.setXkzyxentity(xkzyentity); return Object2JsonStr(xkzyxfvo); } @Override public Boolean submit(XkzyxEntity code, String[] jydyids, String accid, String mtids, String bwids, String cgids, String ckids, String dcids, String ryids, String sssbids, String qytzids, String zxjxids) { if (!this.checkUser()){ return false; } UserEntity user = getUser(); XkzyxEntity xkzyxEntity = new XkzyxEntity(); try { if (!StringUtils.isEmpty(code.getId())) { xkzyxEntity = xkzyxService.findOne(code.getId()); xkzyxEntity.setBgdd(code.getBgdd()); xkzyxEntity.setFddbr(code.getFddbr()); xkzyxEntity.setLxr(code.getLxr()); xkzyxEntity.setLxdh(code.getLxdh()); xkzyxEntity.setBz(code.getBz()); xkzyxEntity = xkzyxService.submit(xkzyxEntity); } else { code.setSqr(user.getName()); Date today = new Date(); code.setSqrq(today); GkjyrEntity jyr = gkjyrService.findOne(code.getJyrid()); if (jyr != null) { code.setSzgk(jyr.getSzgk()); code.setSzgq(jyr.getSzgq()); code.setSsgkglbm(jyr.getSsgkglbm()); } xkzyxEntity = xkzyxService.submit(code); } if (!StringUtils.isEmpty(accid)) { // 关联附件 String[] ssids = accid.split(","); for (String ssid : ssids) { XkzyxfjEntity xkzyxfj = xkzyxfjService.findOne(ssid); if (xkzyxfj != null) { xkzyxfj.setSqid(xkzyxEntity.getId()); xkzyxfjService.save(xkzyxfj); } } } // rtx提醒 //rtxSend(xkzyxEntity.getSzgq().getId(), Constants.ROLE_CLSC, "你有一条许可证延续待办事务,请及时处理!"); } catch (Exception e) { return false; } return true; } @Override public Boolean audit(String shyj, String id, boolean flag) { if (!this.checkUser()){ return false; } UserEntity user = getUser(); XkzyxEntity entity = null; @SuppressWarnings("unused") String role =""; try { entity = xkzyxService.findOne(id); Date today = new Date(); List list = taskInfoService.findByBusIdAndBusKeyAndRecordStatus(id, XkzyxEntity.PROCESS_DEFINITION_KEY); if (list != null & list.size() > 0) { TaskInfoEntity taskinfo = list.get(0); if ("材料审查".equals(taskinfo.getCurrName())) { entity.setClscyj(StringUtils.isEmpty(shyj) ? "" : shyj); entity.setClscjbr(user.getName()); entity.setClscrq(today); role =Constants.ROLE_HC; } else if ("核查".equals(taskinfo.getCurrName())) { entity.setHcyj(StringUtils.isEmpty(shyj) ? "" : shyj); entity.setHcjbr(user.getName()); entity.setHcjbrq(today); role =Constants.ROLE_FH; } else if ("复核".equals(taskinfo.getCurrName())) { entity.setFhyj(StringUtils.isEmpty(shyj) ? "" : shyj); entity.setFhjbr(user.getName()); entity.setFhrq(today); role =Constants.ROLE_SP; } else if ("审批".equals(taskinfo.getCurrName())) { entity.setSpyj(StringUtils.isEmpty(shyj) ? "" : shyj); entity.setSpjbr(user.getName()); entity.setSprq(today); } xkzyxService.save(entity); } } catch (Exception e) { return false; } try { if (xkzyxService.getCandidateTaskByUserAndBusKey(getUser().getId().toString(), id) != null) { xkzyxService.claim(id, getUser().getId().toString()); } boolean jflag = xkzyxService.changeAudit(shyj, entity, flag); if (jflag) { // 许可证信息 List xkzlist = xkzxxService.findByJyrid(entity.getJyrid(), Constants.XKZ_SX); if (xkzlist != null && xkzlist.size() > 0) { for (XkzxxEntity xkz : xkzlist) { if ("1".equals(xkz.getSfyx())) { xkz.setIsflag("0"); // xkz.setSfyx(Constants.XKZ_WX); xkz = xkzxxService.save(xkz); XkzxxEntity xkzxx = new XkzxxEntity(); xkzxx.setCq(xkz.getCq()); xkzxx.setDz(xkz.getDz()); xkzxx.setFddbr(xkz.getFddbr()); xkzxx.setFzjg(xkz.getFzjg()); xkzxx.setFzrq(new Date()); xkzxx.setYxqq(new Date()); xkzxx.setGkjyr(xkz.getGkjyr()); xkzxx.setGkjyxkzh(xkz.getGkjyxkzh()); xkzxx.setGkjyxkzsmj(xkz.getGkjyxkzsmj()); xkzxx.setLxdh(xkz.getLxdh()); xkzxx.setQynbbh(xkz.getQynbbh()); xkzxx.setSpr(user.getName()); xkzxx.setSsgq(xkz.getSsgq()); xkzxx.setSzd(xkz.getSzd()); xkzxx.setZyfs(xkz.getZyfs()); xkzxx.setZyhwpm(xkz.getZyhwpm()); xkzxx.setZyqyfw(xkz.getZyqyfw()); xkzxx.setSzgk(xkz.getSzgk()); //xkzxx.setZmpicid(xkz.getZmpicid()); if (xkz.getYxqz() != null) { SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd"); String date = dateTimeFormat.format(xkz.getYxqz()); String t = (Integer.parseInt(date.substring(0, 4)) + 3) + date.substring(4); xkzxx.setYxqz(dateTimeFormat.parse(t)); } xkzxx.setSfyx("13");// 未生效 xkzxx.setIsflag("0"); xkzxx.setOpid(id); xkzxxService.save(xkzxx); } } } // 经营范围 List xzjydylist = xzjydyService.findJydy(id); if (xzjydylist.size() > 0 && xzjydylist != null) { xkzjyfwService.deleteByJyrid(entity.getJyrid()); // 删除后同步修改更新时间 List xkzjys = xkzjyfwService.findByJyrid(entity.getJyrid()); for (XkzjyfwEntity xkzjy : xkzjys) { xkzjy.setUpdateDateTime(new Timestamp(new Date().getTime())); xkzjyfwService.save(xkzjy); } for (XzjydyEntity xzjydyEntity : xzjydylist) { if (xzjydyEntity != null) { // 保存成功后 XkzjyfwEntity jyfw = new XkzjyfwEntity(); jyfw.setJyrid(entity.getJyrid()); jyfw.setFjdid(xzjydyEntity.getFjdid() != null ? xzjydyEntity.getFjdid() : ""); jyfw.setFjdmc(xzjydyEntity.getFjdmc() != null ? xzjydyEntity.getFjdmc() : ""); jyfw.setJyfwid(xzjydyEntity.getJyfwid() != null ? xzjydyEntity.getJyfwid() : ""); jyfw.setJyfwmc(xzjydyEntity.getJyfwmc() != null ? xzjydyEntity.getJyfwmc() : ""); jyfw.setBwid(xzjydyEntity.getBwid() != null ? xzjydyEntity.getBwid() : ""); jyfw.setGkid(xzjydyEntity.getGkid() != null ? xzjydyEntity.getGkid() : ""); jyfw.setGqid(xzjydyEntity.getGqid() != null ? xzjydyEntity.getGqid() : ""); jyfw.setZyqid(xzjydyEntity.getZyqid() != null ? xzjydyEntity.getZyqid() : ""); jyfw.setMtid(xzjydyEntity.getMtid() != null ? xzjydyEntity.getMtid() : ""); xkzjyfwService.save(jyfw); } } } }else{ // rtx提醒 //rtxSend(entity.getSzgq().getId(), role, "你有一条许可证延续待办事务,请及时处理!"); } } catch (Exception e) { return false; } return true; } // 去重复附件数据 public List fjlist(List ids) { List newlist = new ArrayList(); List relist = new ArrayList(); for (int i = 0; i < ids.size(); i++) { List list = xkzsqglbService.findById(ids.get(i)); if (list != null && list.size() > 0) { for (XkzsqglbEntity entity : list) { newlist.add(Integer.parseInt(entity.getFileid())); } } } if (newlist != null && newlist.size() > 0) { relist = array_unique(newlist); } return relist; } public List array_unique(List slist) { // array_unique List list = new LinkedList(); for (int i = 0; i < slist.size(); i++) { if (!list.contains(slist.get(i))) { list.add(slist.get(i)); } } return list; } public List getGq(){ String userName=CxfwsUtils.userNameFromHeaderInfo(wscontext); UserEntity userEntity = userdao.findByUname(userName); List gqlist = gqService.findGqListByUserId(userEntity.getId()); return gqlist; } public UserEntity getUser(){ String userName=CxfwsUtils.userNameFromHeaderInfo(wscontext); UserEntity userEntity = userdao.findByUname(userName); return userEntity; } }