| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- package com.xcgl.projecttask.service.impl;
- import cn.com.lzt.car.alarm.CarAlarmEntity;
- import cn.com.lzt.maintainbill.entity.MaintainBillEntity;
- import cn.com.lzt.message.send.entity.MMessageEntity;
- import cn.com.lzt.message.send.entity.MessageWxTemplateConfig;
- import cn.com.lzt.message.send.service.MMessageSendServiceI;
- import cn.com.lzt.tools.ServerType;
- import cn.com.lzt.useractiviti.socialinsurance.entity.TBActivitiUserSocialInsuranceEntity;
- import com.xcgl.projecttask.service.ProjecttaskServiceI;
- import com.xcgl.taskresult.entity.TaskResultEntity;
- import com.xcgl.utils.XcglConstant;
- import cn.com.lzt.maintainbill.service.MaintainBillServiceI;
- import com.xcgl.weeklyMeeting.entity.WeeklyMeetingEntity;
- import net.sf.json.JSONArray;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.http.HttpResponse;
- import org.apache.http.HttpStatus;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.entity.StringEntity;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.log4j.Logger;
- import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
- import com.alibaba.fastjson.JSONObject;
- import com.xcgl.middleware.MiddleWareInfo;
- import com.xcgl.projecttask.entity.ProjecttaskEntity;
- import org.jeecgframework.core.constant.Globals;
- import org.jeecgframework.core.util.*;
- import org.jeecgframework.web.system.pojo.base.TSUser;
- import org.jeecgframework.web.system.service.SystemService;
- import org.jeecgframework.web.system.service.UserService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.io.Serializable;
- import java.nio.charset.Charset;
- import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
- @Service("projecttaskService")
- @Transactional
- public class ProjecttaskServiceImpl extends CommonServiceImpl implements ProjecttaskServiceI {
- @Autowired
- private MMessageSendServiceI mMessageSendService;
- @Autowired
- private UserService userService;
- private static final Logger logger = Logger.getLogger(ProjecttaskServiceImpl.class);
-
- public void delete(ProjecttaskEntity entity) throws Exception{
- super.delete(entity);
- //执行删除操作增强业务
- this.doDelBus(entity);
- }
-
- public Serializable save(ProjecttaskEntity entity) throws Exception{
- Serializable t = super.save(entity);
- //执行新增操作增强业务
- this.doAddBus(entity);
- return t;
- }
-
- public void saveOrUpdate(ProjecttaskEntity entity) throws Exception{
- super.saveOrUpdate(entity);
- //执行更新操作增强业务
- this.doUpdateBus(entity);
- }
- @Override
- public void afterDone(ProjecttaskEntity task,TaskResultEntity taskResult) {
- String sourceType = task.getSourcetype();
- String taskType = task.getTasktype();
- String sourceId = task.getSourceid();
- if(StringUtils.equals(sourceType,"activititask") && StringUtils.equals(taskType,"user_social_insurance")){//社保公积金签报完任务成后,通知发起人
- TBActivitiUserSocialInsuranceEntity entity = get(TBActivitiUserSocialInsuranceEntity.class,sourceId);
- TSUser createUser = userService.getUserByUserName(entity.getCreateBy());
- String msgTitle="人事缴金专员已完成社保公积金签报任务";
- mMessageSendService.msg(createUser, msgTitle);
- }
- if(StringUtils.equals(sourceType,"weeklymeeting")){
- WeeklyMeetingEntity entity = get(WeeklyMeetingEntity.class,sourceId );
- entity.setActualCompletion(new Date());
- entity.setExecutionStatus(XcglConstant.TASKSTATUS_DONE);
- }
- /*if(StringUtils.equals(sourceType,"maintainbill")){//维保回写工作执行说明
- MaintainBillEntity entity = get(MaintainBillEntity.class,sourceId);
- entity.setDescription(taskResult.getMemo());
- }*/
- }
- @Override
- public void sendMsg(ProjecttaskEntity task) {
- String owner = task.getOwner();
- TSUser ownerUser = getEntity(TSUser.class, owner);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- ProjecttaskEntity.ExecuteWay executeWay = task.getExecuteWay();
- Map<String, Object> userMsgParms = new HashMap<String, Object>();
- String first = null;
- if(StringUtils.isNotBlank(task.getWxMsgTitle())){
- first = task.getWxMsgTitle();
- }else {
- first = "你好" + ownerUser.getRealName() + ",你有一个新工作";
- }
- String k1 = null;
- if(StringUtils.isNotBlank(task.getWxTaskName())){
- k1 = task.getWxTaskName();
- }else {
- k1 = task.getName();
- }
- userMsgParms.put("first", first);
- userMsgParms.put("keyword1", k1);//工作内容
- userMsgParms.put("keyword2", format.format(new Date()));//创建时间
- String url = null;
- String remark=task.getWxRemark();
- if(StringUtils.isBlank(remark)) {
- remark = "任务时间:截止到 " + format.format(task.getPlanendtime());
- }
- remark +="\r\n ";
- if (executeWay == ProjecttaskEntity.ExecuteWay.both) {
- url = "http://www.shenqin.work";
- if(ServerType.getServerType()==ServerType.test){
- String serverPath = ResourceUtil.getConfigByName(Globals.SERVER_WXMSG);
- url=serverPath;
- }
- url += "/h5/task.html?id=" + task.getId();
- remark += "点击【详情】查看工作内容";
- } else {
- remark += "请登录慧管理系统完成工作";
- }
- userMsgParms.put("remark", remark);
- MessageWxTemplateConfig config = new MessageWxTemplateConfig();
- config.setTemplateId(XcglConstant.TEMPLATE_WXMSG_TASK);
- config.setUserMsgParms(userMsgParms);
- config.setShowUrl(url!=null);
- mMessageSendService.sendMessage(Collections.singletonList(owner),url,null,null,config,new MMessageEntity.MessageSendWay[]{MMessageEntity.MessageSendWay.wx});
- }
- @Override
- public String getMaxLocalCode(){
- StringBuilder sb = new StringBuilder();
- sb.append("SELECT code FROM p_projecttask where left(create_date,10) =? ");
- sb.append(" ORDER BY code DESC");
- List<Map<String, Object>> objMapList = findForJdbc(sb.toString(), DateUtils.date_sdf.format(new Date()));
- String returnCode = null;
- if(objMapList!=null && objMapList.size()>0){
- returnCode = (String)objMapList.get(0).get("code");
- }
- return returnCode;
- }
- /**
- * 新增操作增强业务
- * @param t
- * @return
- */
- private void doAddBus(ProjecttaskEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
- /**
- * 更新操作增强业务
- * @param t
- * @return
- */
- private void doUpdateBus(ProjecttaskEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- if(t.getTaskstatus().equals(XcglConstant.TASKSTATUS_DONE)) {
- if(t.getTasktype().equals("maintainbill")) {
- MaintainBillServiceI maintainbillService = ApplicationContextUtil.getContext().getBean(MaintainBillServiceI.class);
- maintainbillService.afterTaskFinish(t);
- }
- }
- //-----------------java增强 end-----------------------------
- }
- /**
- * 删除操作增强业务
- * @return
- */
- private void doDelBus(ProjecttaskEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
-
- private Map<String,Object> populationMap(ProjecttaskEntity t){
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("id", t.getId());
- map.put("create_name", t.getCreateName());
- map.put("create_by", t.getCreateBy());
- map.put("create_date", t.getCreateDate());
- map.put("update_name", t.getUpdateName());
- map.put("update_by", t.getUpdateBy());
- map.put("update_date", t.getUpdateDate());
- map.put("code", t.getCode());
- map.put("name", t.getName());
- map.put("description", t.getDescription());
- map.put("taskplanid", t.getTaskplanid());
- map.put("msgtime", t.getMsgtime());
- map.put("planstarttime", t.getPlanstarttime());
- map.put("planendtime", t.getPlanendtime());
- map.put("exestarttime", t.getExestarttime());
- map.put("exeendtime", t.getExeendtime());
- map.put("owner", t.getOwner());
- map.put("executer", t.getExecuter());
- map.put("projectid", t.getProjectid());
- map.put("taskstatus", t.getTaskstatus());
- map.put("tasktype", t.getTasktype());
- map.put("sourceid", t.getSourceid());
- map.put("sourcetype", t.getSourcetype());
- map.put("closemsg", t.getClosemsg());
- return map;
- }
-
- /**
- * 替换sql中的变量
- * @param sql
- * @param t
- * @return
- */
- public String replaceVal(String sql,ProjecttaskEntity t){
- sql = sql.replace("#{id}",String.valueOf(t.getId()));
- sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
- sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
- sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
- sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
- sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
- sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
- sql = sql.replace("#{code}",String.valueOf(t.getCode()));
- sql = sql.replace("#{name}",String.valueOf(t.getName()));
- sql = sql.replace("#{description}",String.valueOf(t.getDescription()));
- sql = sql.replace("#{taskplanid}",String.valueOf(t.getTaskplanid()));
- sql = sql.replace("#{msgtime}",String.valueOf(t.getMsgtime()));
- sql = sql.replace("#{planstarttime}",String.valueOf(t.getPlanstarttime()));
- sql = sql.replace("#{planendtime}",String.valueOf(t.getPlanendtime()));
- sql = sql.replace("#{exestarttime}",String.valueOf(t.getExestarttime()));
- sql = sql.replace("#{exeendtime}",String.valueOf(t.getExeendtime()));
- sql = sql.replace("#{owner}",String.valueOf(t.getOwner()));
- sql = sql.replace("#{executer}",String.valueOf(t.getExecuter()));
- sql = sql.replace("#{projectid}",String.valueOf(t.getProjectid()));
- sql = sql.replace("#{taskstatus}",String.valueOf(t.getTaskstatus()));
- sql = sql.replace("#{tasktype}",String.valueOf(t.getTasktype()));
- sql = sql.replace("#{sourceid}",String.valueOf(t.getSourceid()));
- sql = sql.replace("#{sourcetype}",String.valueOf(t.getSourcetype()));
- sql = sql.replace("#{closemsg}",String.valueOf(t.getClosemsg()));
- sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
- return sql;
- }
-
- /**
- * 执行JAVA增强
- */
- private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
- if(StringUtil.isNotEmpty(cgJavaValue)){
- Object obj = null;
- try {
- if("class".equals(cgJavaType)){
- //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
- obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
- }else if("spring".equals(cgJavaType)){
- obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
- }
- if(obj instanceof CgformEnhanceJavaInter){
- CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
- javaInter.execute("p_projecttask",data);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new Exception("执行JAVA增强出现异常!");
- }
- }
- }
- }
|