|
@ -3,27 +3,22 @@ package com.yihu.jw.base.service.servicePackage;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.base.dao.servicePackage.ServicePackageDao;
|
|
|
import com.yihu.jw.base.dao.servicePackage.ServicePackageItemDao;
|
|
|
import com.yihu.jw.base.dao.servicePackage.ServicePackageSignRecordDao;
|
|
|
import com.yihu.jw.base.dao.system.SystemDictEntryDao;
|
|
|
import com.yihu.jw.base.dao.team.BaseTeamDao;
|
|
|
import com.yihu.jw.base.util.ConstantUtils;
|
|
|
import com.yihu.jw.entity.base.org.BaseOrgDO;
|
|
|
import com.yihu.jw.entity.base.servicePackage.ServicePackageDO;
|
|
|
import com.yihu.jw.entity.base.servicePackage.ServicePackageItemDO;
|
|
|
import com.yihu.jw.entity.base.system.SystemDictEntryDO;
|
|
|
import com.yihu.jw.mysql.query.BaseJpaService;
|
|
|
import com.yihu.jw.org.dao.BaseOrgDao;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import com.yihu.jw.restmodel.qvo.ParamQvo;
|
|
|
import com.yihu.jw.utils.StringUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
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.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author yeshijie on 2018/8/17.
|
|
@ -38,73 +33,54 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
|
|
|
private ServicePackageDao servicePackageDao;
|
|
|
@Autowired
|
|
|
private ServicePackageItemDao servicePackageItemDao;
|
|
|
@Autowired
|
|
|
private BaseOrgDao baseOrgDao;
|
|
|
@Autowired
|
|
|
private BaseTeamDao baseTeamDao;
|
|
|
@Autowired
|
|
|
private SystemDictEntryDao systemDictEntryDao;
|
|
|
|
|
|
@Autowired
|
|
|
private ServicePackageSignRecordDao servicePackageSignRecordDao;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public JSONObject create(ServicePackageDO servicePackageDO) {
|
|
|
public JSONObject create(ServicePackageDO packageVo) {
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
JSONObject result = new JSONObject();
|
|
|
//获取服务项
|
|
|
List<ServicePackageItemDO> itemList = packageVo.getPackageItemDOList();
|
|
|
|
|
|
List<ServicePackageItemDO> itemDOList = servicePackageDO.getPackageItemDOList();
|
|
|
if (itemDOList == null) {
|
|
|
servicePackageDO.setNum(0);
|
|
|
//服务项的个数
|
|
|
if (itemList == null) {
|
|
|
packageVo.setNum(0);
|
|
|
} else {
|
|
|
servicePackageDO.setNum(itemDOList.size());
|
|
|
packageVo.setNum(itemList.size());
|
|
|
}
|
|
|
|
|
|
if (StringUtil.isEmpty(servicePackageDO.getId())) {
|
|
|
//数据逻辑
|
|
|
if (StringUtil.isEmpty(packageVo.getId())) {
|
|
|
//新增
|
|
|
servicePackageDO.setCreateTime(new Date());
|
|
|
servicePackageDO = servicePackageDao.save(servicePackageDO);
|
|
|
packageVo.setCreateTime(new Date());
|
|
|
packageVo = servicePackageDao.save(packageVo);
|
|
|
} else {
|
|
|
//修改
|
|
|
ServicePackageDO oldDO = servicePackageDao.findById(servicePackageDO.getId()).orElse(null);
|
|
|
oldDO.setName(servicePackageDO.getName());
|
|
|
oldDO.setDel(servicePackageDO.getDel());
|
|
|
oldDO.setType(servicePackageDO.getType());
|
|
|
oldDO.setIntroduce(servicePackageDO.getIntroduce());
|
|
|
oldDO.setOrgCode(servicePackageDO.getOrgCode());
|
|
|
oldDO.setOrgName(servicePackageDO.getOrgName());
|
|
|
servicePackageDO = servicePackageDao.save(oldDO);
|
|
|
ServicePackageDO oldDO = servicePackageDao.findById(packageVo.getId()).orElse(null);
|
|
|
oldDO.setName(packageVo.getName());
|
|
|
oldDO.setDel(packageVo.getDel());
|
|
|
oldDO.setType(packageVo.getType());
|
|
|
oldDO.setIntroduce(packageVo.getIntroduce());
|
|
|
oldDO.setOrgCode(packageVo.getOrgCode());
|
|
|
oldDO.setOrgName(packageVo.getOrgName());
|
|
|
oldDO.setLeasedCode(packageVo.getLeasedCode());
|
|
|
oldDO.setLeasedName(packageVo.getLeasedName());
|
|
|
//更新服务包
|
|
|
packageVo = servicePackageDao.save(oldDO);
|
|
|
//删除服务项-根据server_page_id
|
|
|
servicePackageItemDao.deleteByServicePackageId(oldDO.getId());
|
|
|
}
|
|
|
List<ServicePackageItemDO> itemDOs = new ArrayList<>();
|
|
|
for (ServicePackageItemDO itemDO : itemDOList) {
|
|
|
BaseOrgDO baseOrgDO = baseOrgDao.findByCode(itemDO.getOrgCode());
|
|
|
if (baseOrgDO != null) {
|
|
|
itemDO.setOrgName(baseOrgDO.getName());
|
|
|
}
|
|
|
itemDO = servicePackageItemDao.findById(itemDO.getId()).orElse(null);
|
|
|
;
|
|
|
ServicePackageItemDO itemDO1 = new ServicePackageItemDO();
|
|
|
BeanUtils.copyProperties(itemDO, itemDO1);
|
|
|
itemDO1.setId(null);
|
|
|
itemDO1.setDictId(itemDO.getId());
|
|
|
itemDO1.setServicePackageId(servicePackageDO.getId());
|
|
|
itemDO1.setCreateTime(DateUtil.getStringDate());
|
|
|
|
|
|
SystemDictEntryDO systemDictEntryDO = systemDictEntryDao.findByDictCodeAndCode("service_item", itemDO.getCode());
|
|
|
if (systemDictEntryDO != null) {
|
|
|
if (StringUtils.isNotBlank(systemDictEntryDO.getRemark())) {//服务项所属专题不为空
|
|
|
itemDO1.setTopicItem(systemDictEntryDO.getRemark());
|
|
|
}
|
|
|
}
|
|
|
itemDOs.add(itemDO1);
|
|
|
//保存服务项
|
|
|
List<ServicePackageItemDO> saveItemList = new ArrayList<>();
|
|
|
for (ServicePackageItemDO item : itemList) {
|
|
|
item.setCreateTime(dateFormat.format(new Date()));
|
|
|
saveItemList.add(item);
|
|
|
}
|
|
|
servicePackageItemDao.saveAll(itemDOs);
|
|
|
|
|
|
servicePackageItemDao.saveAll(saveItemList);
|
|
|
result.put("response", ConstantUtils.SUCCESS);
|
|
|
result.put("msg", "操作成功");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public HashMap<String, Object> findList(String leasedCode, String orgCode, String pageName, String status, int page, int size) {
|
|
|
String detailSql = "SELECT\n" +
|
|
|
" (SELECT GROUP_CONCAT(b.`name`) FROM base_service_package_item b WHERE b.service_package_id=a.id) 'pageItemName',\n" +
|
|
@ -135,4 +111,25 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
|
|
|
map.put("count", count);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
public void deleteById(ParamQvo qvo) {
|
|
|
//查出服务包的服务项
|
|
|
String itemSql = "SELECT id 'itemId' FROM base_service_package_item WHERE service_package_id ='" + qvo.getId() + "'";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(itemSql);
|
|
|
String collect = list.stream().map(map -> String.valueOf("'" + map.get("itemId") + "'")).collect(Collectors.joining(",", "(", ") "));
|
|
|
//删除服务部
|
|
|
String sql01 = " DELETE FROM base_service_package WHERE id='" + qvo.getId() + "'";
|
|
|
//删除服务项
|
|
|
String sql02 = " DELETE FROM base_service_package_item WHERE service_package_id='" + qvo.getId() + "'";
|
|
|
//删除关联关系
|
|
|
String sql03 = " DELETE FROM base_service_package_item_relational WHERE item_id IN " + collect;
|
|
|
jdbcTemplate.execute(sql03);
|
|
|
jdbcTemplate.execute(sql02);
|
|
|
jdbcTemplate.execute(sql01);
|
|
|
}
|
|
|
|
|
|
public void changeState(ParamQvo qvo) {
|
|
|
String sql = " UPDATE base_service_package SET del='" + qvo.getStatus() + "'' WHERE id='" + qvo.getId() + "'";
|
|
|
jdbcTemplate.execute(sql);
|
|
|
}
|
|
|
}
|