Commit 53273fa3 authored by 13223's avatar 13223

第一次上传

parents
Pipeline #1333 failed with stages
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ejianc</groupId>
<artifactId>ejc-propertmanagement</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>ejc-propertmanagement-api</artifactId>
<name>ejc-propertmanagement-api</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-core</artifactId>
<version>3.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-idm-api</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-skeleton</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ejianc</groupId>
<artifactId>ejc-propertmanagement</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>ejc-propertmanagement-impl</artifactId>
<name>ejc-propertmanagement-impl</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-propertmanagement-api</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-auth</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.ejianc.business.propertManagement.bean;
import java.util.Date;
import java.math.*;
import java.util.List;
import java.util.ArrayList;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ejianc.framework.skeleton.template.BaseEntity;
import com.ejianc.framework.skeleton.template.annotation.SubEntity;
/**
* 房产维修
*
* @author generator
*
*/
@TableName("ejc_house_maintenance_entity")
public class houseMaintenanceEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
}
package com.ejianc.business.propertManagement.controller;
import java.io.Serializable;
import com.ejianc.foundation.orgcenter.vo.OrgVO;
import com.ejianc.foundation.support.vo.BillCodeParam;
import com.ejianc.foundation.support.api.IBillCodeApi;
import com.ejianc.foundation.support.api.IBillTypeApi;
import com.ejianc.framework.core.exception.BusinessException;
import com.ejianc.framework.core.util.ExcelExport;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.apache.commons.collections.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import com.ejianc.foundation.orgcenter.api.IOrgApi;
import com.ejianc.framework.core.response.CommonResponse;
import org.springframework.beans.factory.annotation.Autowired;
import com.ejianc.framework.core.context.InvocationInfoProxy;
import com.ejianc.framework.core.kit.mapper.BeanMapper;
import com.ejianc.framework.core.kit.collection.ListUtil;
import com.ejianc.framework.auth.session.SessionManager;
import com.ejianc.framework.auth.session.UserContext;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ejianc.framework.core.response.Parameter;
import com.ejianc.framework.core.response.QueryParam;
import com.ejianc.business.propertManagement.bean.houseMaintenanceEntity;
import com.ejianc.business.propertManagement.service.IhouseMaintenanceService;
import com.ejianc.business.propertManagement.vo.houseMaintenanceVO;
/**
* 房产维修
*
* @author generator
*
*/
@Controller
@RequestMapping("houseMaintenance")
public class houseMaintenanceController implements Serializable {
private static final long serialVersionUID = 1L;
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private IBillTypeApi billTypeApi;
@Autowired
private IBillCodeApi billCodeApi;
@Autowired
private IOrgApi iOrgApi;
private static final String BILL_CODE = "Invoice_Open_Apply_Code";//此处需要根据实际修改
@Autowired
private IhouseMaintenanceService service;
@Autowired
private SessionManager sessionManager;
/**
* @Description saveOrUpdate 新增或者修改
*/
@RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
@ResponseBody
public CommonResponse<houseMaintenanceVO> saveOrUpdate(@RequestBody houseMaintenanceVO saveOrUpdateVO) {
houseMaintenanceEntity entity = BeanMapper.map(saveOrUpdateVO, houseMaintenanceEntity.class);
if(entity.getId() == null || entity.getId() == 0){
BillCodeParam billCodeParam = BillCodeParam.build(BILL_CODE,InvocationInfoProxy.getTenantid(),saveOrUpdateVO);
CommonResponse<String> billCode = billCodeApi.generateBillCode(billCodeParam);
if(billCode.isSuccess()) {
entity.setCode(billCode.getData());//此处需要根据实际修改 删除本行或者下一行
entity.setBillCode(billCode.getData());//此处需要根据实际修改 删除本行或者上一行
}else{
throw new BusinessException("网络异常, 编码生成失败, 请稍后再试");
}
}
service.saveOrUpdate(entity, false);
houseMaintenanceVO vo = BeanMapper.map(entity, houseMaintenanceVO.class);
return CommonResponse.success("保存或修改单据成功!",vo);
}
/**
* @Description queryDetail 查询详情
* @param id
*/
@RequestMapping(value = "/queryDetail", method = RequestMethod.GET)
@ResponseBody
public CommonResponse<houseMaintenanceVO> queryDetail(Long id) {
houseMaintenanceEntity entity = service.selectById(id);
houseMaintenanceVO vo = BeanMapper.map(entity, houseMaintenanceVO.class);
return CommonResponse.success("查询详情数据成功!",vo);
}
/**
* @Description delete 批量删除单据
* @Param [ids]
*/
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public CommonResponse<String> delete(@RequestBody List<houseMaintenanceVO> vos) {
if(ListUtil.isNotEmpty(vos)){
for (houseMaintenanceVO vo : vos) {
// 参数是单据类型编码字符串 根据需求是否打开下面代码
/* CommonResponse<String> resp = billTypeApi.checkQuote("billTypeCode", vo.getId());
if(!resp.isSuccess()){
return CommonResponse.error("删除失败!"+resp.getMsg());
}*/
}
}
service.removeByIds(vos.stream().map(houseMaintenanceVO::getId).collect(Collectors.toList()),true);
return CommonResponse.success("删除成功!");
}
/**
* @Description queryList 查询列表
* @param param
* @Return com.ejianc.framework.core.response.CommonResponse<java.lang.String>
*/
@RequestMapping(value = "/queryList", method = RequestMethod.POST)
@ResponseBody
public CommonResponse<IPage<houseMaintenanceVO>> queryList(@RequestBody QueryParam param) {
/** 模糊搜索配置字段示例 */
List<String> fuzzyFields = param.getFuzzyFields();
/** 租户隔离 */
param.getParams().put("tenantId", new Parameter(QueryParam.EQ, InvocationInfoProxy.getTenantid()));
/** 数据隔离 本下 没有组织orgId的删除下面代码-------------开始 */
UserContext userContextCache =sessionManager.getUserContext();
//当前应用有权限的根orgId,以逗号分割,可据此查询其本下数据,需判空
String authOrgIds = userContextCache.getAuthOrgIds();
List<OrgVO> orgVOList = null;
if(StringUtils.isNotBlank(authOrgIds)){//移动端查询
orgVOList = (List<OrgVO>) getRespData(iOrgApi.findChildrenByParentIds(Arrays.stream(authOrgIds.split(",")).map(Long::parseLong).collect(Collectors.toList())), true, "查询失败,获取当前本下组织信息失败。");
}else {//pc端查询
orgVOList = (List<OrgVO>) getRespData(iOrgApi.findChildrenByParentId(InvocationInfoProxy.getOrgId()), true, "查询失败,获取当前本下组织信息失败。");
}
//普通组织 id
List<Long> commonOrgIds = new ArrayList<>();
//项目部 id
List<Long> departmentIds = new ArrayList<>();
orgVOList.stream().forEach(org -> {
if(5 == org.getOrgType()) {
//项目部
departmentIds.add(org.getId());
} else {
//普通组织
commonOrgIds.add(org.getId());
}
});
if(CollectionUtils.isNotEmpty(commonOrgIds)) {
/** 要求主表有orgId字段,保存单据所属组织 */
param.getParams().put("orgId", new Parameter(QueryParam.IN, commonOrgIds));
} else if(CollectionUtils.isNotEmpty(departmentIds)) {
/** 要求主表有projectDepartmentId字段,保存单据所属项目部 */
param.getParams().put("orgId", new Parameter(QueryParam.IN, departmentIds));
}
/** 数据隔离 本下 没有组织orgId的删除上面代码-------------结束!!! */
IPage<houseMaintenanceEntity> page = service.queryPage(param,false);
IPage<houseMaintenanceVO> pageData = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
pageData.setRecords(BeanMapper.mapList(page.getRecords(), houseMaintenanceVO.class));
return CommonResponse.success("查询列表数据成功!",pageData);
}
/**
* 获取RPC数据
* resp 返回值
* isMustSuc 是否必须成功
* errMsg 失败提示
*/
private Object getRespData(CommonResponse<?> resp, boolean isMustSuc, String errMsg) {
if(isMustSuc && !resp.isSuccess()) {
throw new BusinessException(StringUtils.isNoneBlank(errMsg) ? errMsg : "调用Rpc服务失败");
}
return resp.getData();
}
/**
* @Description 导出
* @param param
* @Return void
*/
@RequestMapping(value = "/excelExport", method = RequestMethod.POST)
@ResponseBody
public void excelExport(@RequestBody QueryParam param, HttpServletResponse response) {
/** 模糊搜索配置字段示例 */
List<String> fuzzyFields = param.getFuzzyFields();
param.getParams().put("tenant_id",new Parameter(QueryParam.EQ,InvocationInfoProxy.getTenantid()));
param.setPageIndex(1);
param.setPageSize(-1);
/** 数据隔离 本下 没有组织orgId的删除下面代码 */
param.getParams().put("orgId",new Parameter(QueryParam.IN,iOrgApi.findChildrenByParentId(InvocationInfoProxy.getOrgId()).getData().stream().map(OrgVO::getId).collect(Collectors.toList())));
List<houseMaintenanceEntity> list = service.queryList(param);
//todo:字段翻译等等
Map<String, Object> beans = new HashMap<>();
beans.put("records", list);
ExcelExport.getInstance().export("houseMaintenance-export.xlsx", beans, response);
}
/**
* @Description 参照
* @param param
* @Return void
*/
@RequestMapping(value = "/refhouseMaintenanceData", method = RequestMethod.GET)
@ResponseBody
public CommonResponse<IPage<houseMaintenanceVO>> refhouseMaintenanceData(@RequestParam Integer pageNumber, @RequestParam Integer pageSize,
String condition,
String searchObject,
String searchText) {
QueryParam param = new QueryParam();
param.setPageSize(pageSize);
param.setPageIndex(pageNumber);
param.setSearchText(searchText);
param.setSearchObject(searchObject);
/** 租户隔离 */
param.getParams().put("tenantId", new Parameter(QueryParam.EQ, InvocationInfoProxy.getTenantid()));
if(StringUtils.isNotEmpty(condition)){
/** 处理condition */
JSONObject _con = JSONObject.parseObject(condition);
}
IPage<houseMaintenanceEntity> page = service.queryPage(param,false);
IPage<houseMaintenanceVO> pageData = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
pageData.setRecords(BeanMapper.mapList(page.getRecords(), houseMaintenanceVO.class));
return CommonResponse.success("查询参照数据成功!",pageData);
}
}
package com.ejianc.business.propertManagement.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.ejianc.framework.skeleton.template.BaseCrudMapper;
import com.ejianc.business.propertManagement.bean.houseMaintenanceEntity;
/**
* 房产维修
*
* @author generator
*
*/
@Mapper
public interface houseMaintenanceMapper extends BaseCrudMapper<houseMaintenanceEntity> {
}
package com.ejianc.business.propertManagement.service;
import com.ejianc.framework.skeleton.template.IBaseService;
import com.ejianc.business.propertManagement.bean.houseMaintenanceEntity;
/**
* 房产维修
*
* @author generator
*
*/
public interface IhouseMaintenanceService extends IBaseService<houseMaintenanceEntity> {
}
package com.ejianc.business.propertManagement.service.impl;
import org.springframework.stereotype.Service;
import com.ejianc.foundation.support.api.IBillTypeApi;
import com.ejianc.framework.core.response.CommonResponse;
import com.ejianc.framework.skeleton.billState.service.ICommonBusinessService;
import org.springframework.beans.factory.annotation.Autowired;
@Service("houseMaintenance")
public class houseMaintenanceBpmServiceImpl implements ICommonBusinessService {
@Autowired
private IBillTypeApi billTypeApi;
/**
* 提交前回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> beforeSubmitProcessor(Long billId, Integer state, String billTypeCode) {
//TODO
return CommonResponse.success();
};
/**
* 提交完回调
*
* @param
* @return
*/
@Override
public CommonResponse<String> afterSubmitProcessor(Long billId, Integer state, String billTypeCode){
//TODO
return CommonResponse.success();
}
/**
* 有审批流的撤回前回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> beforeHasBpmBack(Long billId, Integer state, String billTypeCode) {
return CommonResponse.success();
};
/**
* 有审批流的撤回后回调
*
* @param
* @return
*/
@Override
public CommonResponse<String> afterHasBpmBack(Long billId, Integer state, String billTypeCode){
return CommonResponse.success();
};
/**
* 审批节点审批中时节点审批前回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> beforeInApprovalBack(Long billId, Integer state, String billTypeCode, String sign) {
return CommonResponse.success();
};
/**
* 终审审核前回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> beforeApprovalProcessor(Long billId, Integer state, String billTypeCode) {
//TODO
return CommonResponse.success();
}
/**
* 终审审核完回调
*
* @param
* @return
*/
@Override
public CommonResponse<String> afterApprovalProcessor(Long billId, Integer state, String billTypeCode) {
//TODO
return CommonResponse.success();
}
/**
* 弃审前事件回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> beforeAbstainingProcessor(Long billId, Integer state, String billTypeCode) {
//TODO
return CommonResponse.success();
}
/**
* 弃审后事件回调
*
* @param billId
* @param state
* @return
*/
@Override
public CommonResponse<String> afterAbstainingProcessor(Long billId, Integer state, String billTypeCode) {
//TODO
// 参数是单据类型编码字符串 根据需求是否打开下面代码
/**CommonResponse<String> resp = billTypeApi.checkQuote(billTypeCode, billId);
if(!resp.isSuccess()){
return CommonResponse.error("无法撤回!"+resp.getMsg());
}*/
return CommonResponse.success();
}
}
package com.ejianc.business.propertManagement.service.impl;
import org.springframework.stereotype.Service;
import com.ejianc.framework.skeleton.template.BaseServiceImpl;
import com.ejianc.business.propertManagement.mapper.houseMaintenanceMapper;
import com.ejianc.business.propertManagement.bean.houseMaintenanceEntity;
import com.ejianc.business.propertManagement.service.IhouseMaintenanceService;
/**
* 房产维修
*
* @author generator
*
*/
@Service("houseMaintenanceService")
public class houseMaintenanceServiceImpl extends BaseServiceImpl<houseMaintenanceMapper, houseMaintenanceEntity> implements IhouseMaintenanceService{
}
package com.ejianc.business.propertManagement.vo;
import java.util.Date;
import java.math.*;
import java.util.List;
import java.util.ArrayList;
import java.io.Serializable;
import com.ejianc.framework.skeleton.template.BaseVO;
/**
* 房产维修
*
* @author generator
*
*/
public class houseMaintenanceVO extends BaseVO {
private static final long serialVersionUID = 1L;
}
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ejianc</groupId>
<artifactId>ejc-propertmanagement</artifactId>
<version>3.0.0-SNAPSHOT</version>
</parent>
<artifactId>ejc-propertmanagement-web</artifactId>
<name>ejc-propertmanagement-web</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>com.ejianc</groupId>
<artifactId>ejc-propertmanagement-impl</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<!--Spring Boot Actuator,感应服务端变化-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.ejianc;
import org.springframework.boot.Banner;
import org.springframework.boot.ResourceBanner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
@ConfigurationProperties
@ComponentScan
public class PropertmanagementServerApp {
public static void main(String[] args) {
Resource bannerResource = new ClassPathResource("banner.txt");
Banner banner = new ResourceBanner(bannerResource);
new SpringApplicationBuilder(PropertmanagementServerApp.class).banner(banner).run(args);
}
}
ejc-propertmanagement
\ No newline at end of file
common:
security:
user:
name: ejianc
password: ejianc
server:
port: 8080
servlet:
context-path: /ejc-propertmanagement-web
tomcat:
uri-encoding: utf-8
min-space-threads: 50
max-threads: 1000
spring:
application:
name: ejc-propertmanagement-web
http:
encoding:
charset: utf-8
main:
allow-bean-definition-overriding: true
cloud:
config:
name: ${spring.application.name}
profile: local
label: master
uri: https://${common.security.user.name}:${common.security.user.password}@portal.17elian.com/ejc-configserver
eureka:
client:
register-with-eureka: false
fetch-registry: false
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%X{call_thread_id}] [%X{current_user_name}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/tmp/logs/ejc-propertmanagement-web.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/tmp/logs/ejc-propertmanagement-web.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>3</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%X{call_thread_id}] [%X{current_user_name}] [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--log4jdbc -->
<logger name="jdbc.connection" level="OFF" />
<logger name="jdbc.audit" level="OFF" />
<logger name="jdbc.resultset" level="OFF" />
<logger name="jdbc.sqlonly" level="OFF" />
<logger name="jdbc.sqltiming" level="OFF" />
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="rollingFile" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ejianc</groupId>
<artifactId>parent-pom</artifactId>
<version>3.0.1-SNAPSHOT</version>
</parent>
<artifactId>ejc-propertmanagement</artifactId>
<name>ejc-propertmanagement</name>
<version>3.0.0-SNAPSHOT</version>
<groupId>com.ejianc</groupId>
<url>http://maven.apache.org</url>
<packaging>pom</packaging>
<modules>
<module>ejc-propertmanagement-api</module>
<module>ejc-propertmanagement-impl</module>
<module>ejc-propertmanagement-web</module>
</modules>
</project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment