diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProDto.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProDto.java new file mode 100644 index 0000000..2550abc --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProDto.java @@ -0,0 +1,19 @@ +package com.securitycontrol.entity.system.base.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author:cwchen + * @date:2024-03-11-10:52 + * @version:1.0 + * @description:工程-dto + */ +@Data +public class ProDto { + + @ApiModelProperty(value = "工程ID") + private String proId; + + +} diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProGxPlanDto.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProGxPlanDto.java new file mode 100644 index 0000000..184354a --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/dto/ProGxPlanDto.java @@ -0,0 +1,10 @@ +package com.securitycontrol.entity.system.base.dto; + +/** + * @author:cwchen + * @date:2024-03-11-14:45 + * @version:1.0 + * @description:工程工序计划-dto + */ +public class ProGxPlanDto { +} diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProGxPlanVo.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProGxPlanVo.java new file mode 100644 index 0000000..d29e065 --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProGxPlanVo.java @@ -0,0 +1,10 @@ +package com.securitycontrol.entity.system.base.vo; + +/** + * @author:cwchen + * @date:2024-03-11-14:46 + * @version:1.0 + * @description:工程工序计划-vo + */ +public class ProGxPlanVo { +} diff --git a/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProVo.java b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProVo.java new file mode 100644 index 0000000..40f4396 --- /dev/null +++ b/securitycontrol-commons/securitycontrol-commons-entity/src/main/java/com/securitycontrol/entity/system/base/vo/ProVo.java @@ -0,0 +1,88 @@ +package com.securitycontrol.entity.system.base.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @author:cwchen + * @date:2024-03-11-10:52 + * @version:1.0 + * @description:工程-vo + */ +@Data +public class ProVo { + + @ApiModelProperty(value = "工程ID") + private String proId; + + @ApiModelProperty(value = "建管单位") + private String org; + + @ApiModelProperty(value = "登录用户id") + private Integer userId; + + @ApiModelProperty(value = "标段工程编码") + private String bidCode; + + @ApiModelProperty(value = "单项工程编码") + private String signCode; + + @ApiModelProperty(value = "工程编码") + private String proCode; + + @ApiModelProperty(value = "工程名称") + private String proName; + + @ApiModelProperty(value = "工程成本") + private String proCost; + + @ApiModelProperty(value = "施工单位") + private String sgUnit; + + @ApiModelProperty(value = "监理单位") + private String jlUnit; + + @ApiModelProperty(value = "工程类型") + private String proType; + + @ApiModelProperty(value = "工程规模") + private String proScale; + + @ApiModelProperty(value = "项目经理") + private String manager; + + @ApiModelProperty(value = "工程简介") + private String proBrief; + + @ApiModelProperty(value = "当前工序") + private String nowGx; + + @ApiModelProperty(value = "工程状态") + private String status; + + @ApiModelProperty(value = "计划开始时间") + private String planStartTime; + + @ApiModelProperty(value = "计划结束时间") + private String planEndTime; + + @ApiModelProperty(value = "实际开始时间") + private String startTime; + + @ApiModelProperty(value = "实际竣工时间") + private String endTime; + + @ApiModelProperty(value = "工程图片数量") + private int proImgFileNum; + + @ApiModelProperty(value = "平面图数量") + private int proFileNum; + + @ApiModelProperty(value = "类型 1.新增 2.修改") + private int type; + + @ApiModelProperty(value = "类型") + private boolean flag; + +} diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/controller/ProController.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/controller/ProController.java index 05bb080..ced2281 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/controller/ProController.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/controller/ProController.java @@ -1,10 +1,20 @@ package com.securitycontrol.system.base.controller; +import com.securitycontrol.common.core.web.controller.BaseController; +import com.securitycontrol.common.core.web.domain.AjaxResult; +import com.securitycontrol.common.core.web.page.TableDataInfo; +import com.securitycontrol.common.log.annotation.Log; +import com.securitycontrol.common.log.enums.OperationType; +import com.securitycontrol.entity.system.base.dto.ProDto; +import com.securitycontrol.entity.system.base.dto.ProGxPlanDto; +import com.securitycontrol.entity.system.base.vo.ProVo; import com.securitycontrol.system.base.service.IProService; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; /** * @author:cwchen @@ -14,8 +24,51 @@ import javax.annotation.Resource; */ @RestController @RequestMapping("/sys/pro/") -public class ProController { +public class ProController extends BaseController { @Resource(name = "IProService") private IProService service; + + @ApiOperation(value = "获取工程列表") + @GetMapping("getProLists") + @Log(title = "基础管理", menu = "基础管理->工程管理", grade = OperationType.QUERY_BUSINESS, details = "查询功能", type = "业务日志") + public TableDataInfo getProLists(ProDto dto) { + startPage(); + List list = service.getProLists(dto); + return getDataTable(list); + } + + @ApiOperation(value = "新增工程") + @PostMapping("addPro") + @Log(title = "基础管理", menu = "基础管理->工程管理", grade = OperationType.ADD_BUSINESS, details = "新增工程", type = "业务日志") + public AjaxResult addPro(@Valid @RequestBody ProVo vo) { + return service.addOrUpdatePro(vo); + } + + @ApiOperation(value = "修改工程") + @PostMapping("editPro") + @Log(title = "基础管理", menu = "基础管理->工程管理", grade = OperationType.UPDATE_BUSINESS, details = "修改工程", type = "业务日志") + public AjaxResult editPro(@Valid @RequestBody ProVo vo) { + return service.addOrUpdatePro(vo); + } + + @ApiOperation(value = "工程详情") + @GetMapping("getProById") + public AjaxResult getProById(ProDto dto) { + return service.getProById(dto); + } + + @ApiOperation(value = "删除工程") + @PostMapping("delPro") + @Log(title = "基础管理", menu = "基础管理->工程管理", grade = OperationType.DELETE_BUSINESS, details = "删除工程", type = "业务日志") + public AjaxResult delPro(ProDto dto) { + return service.delPro(dto); + } + + @ApiOperation(value = "删除工程工序计划") + @PostMapping("delProGxPlan") + @Log(title = "基础管理", menu = "基础管理->工程管理", grade = OperationType.DELETE_BUSINESS, details = "删除工程工序计划", type = "业务日志") + public AjaxResult delProGxPlan(ProGxPlanDto dto) { + return service.delProGxPlan(dto); + } } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/mapper/IProMapper.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/mapper/IProMapper.java index d0061c7..84d5fee 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/mapper/IProMapper.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/mapper/IProMapper.java @@ -1,7 +1,12 @@ package com.securitycontrol.system.base.mapper; +import com.securitycontrol.entity.system.base.dto.ProDto; +import com.securitycontrol.entity.system.base.dto.ProGxPlanDto; +import com.securitycontrol.entity.system.base.vo.ProVo; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @author:cwchen * @date:2024-03-11-10:11 @@ -10,4 +15,65 @@ import org.springframework.stereotype.Repository; */ @Repository(value = "IProMapper") public interface IProMapper { + /** + * 获取工程列表 + * + * @param dto + * @return List + * @description 获取工程列表 + * @author cwchen + * @date 2024/3/11 11:00 + */ + List getProLists(ProDto dto); + + /** + * 工程图片/平面图数量 + * + * @param proId + * @return List + * @description + * @author cwchen + * @date 2024/3/11 13:45 + */ + List getProFiles(String proId); + + /** + * 新增/修改 工程 + * + * @param vo + * @description + * @author cwchen + * @date 2024/3/11 14:08 + */ + void addOrUpdatePro(ProVo vo); + + /** + * 工程详情 + * + * @param dto + * @return + * @description + * @author cwchen + * @date 2024/3/11 14:28 + */ + ProVo getProById(ProDto dto); + + /** + * 删除工程 + * + * @param dto + * @description + * @author cwchen + * @date 2024/3/11 14:42 + */ + void delPro(ProDto dto); + + /** + * 删除工程工序计划 + * @param dto + * @description + * @author cwchen + * @date 2024/3/11 14:47 + */ + void delProGxPlan(ProGxPlanDto dto); } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/IProService.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/IProService.java index 9734526..0e284fa 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/IProService.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/IProService.java @@ -1,5 +1,12 @@ package com.securitycontrol.system.base.service; +import com.securitycontrol.common.core.web.domain.AjaxResult; +import com.securitycontrol.entity.system.base.dto.ProDto; +import com.securitycontrol.entity.system.base.dto.ProGxPlanDto; +import com.securitycontrol.entity.system.base.vo.ProVo; + +import java.util.List; + /** * @author:cwchen * @date:2024-03-11-10:10 @@ -7,4 +14,58 @@ package com.securitycontrol.system.base.service; * @description:工程管理-业务层 */ public interface IProService { + + /** + * 获取工程列表 + * + * @param dto + * @return List + * @description 获取工程列表 + * @author cwchen + * @date 2024/3/11 10:59 + */ + List getProLists(ProDto dto); + + /** + * 新增/修改工程 + * + * @param vo + * @return AjaxResult + * @description + * @author cwchen + * @date 2024/3/11 14:01 + */ + AjaxResult addOrUpdatePro(ProVo vo); + + /** + * 工程详情 + * + * @param dto + * @return AjaxResult + * @description + * @author cwchen + * @date 2024/3/11 14:26 + */ + AjaxResult getProById(ProDto dto); + + /** + * 删除工程 + * + * @param dto + * @return AjaxResult + * @description + * @author cwchen + * @date 2024/3/11 14:38 + */ + AjaxResult delPro(ProDto dto); + + /** + * 删除工程工序计划 + * @param dto + * @return AjaxResult + * @description + * @author cwchen + * @date 2024/3/11 14:47 + */ + AjaxResult delProGxPlan(ProGxPlanDto dto); } diff --git a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/impl/ProServiceImpl.java b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/impl/ProServiceImpl.java index 193cd33..d86fefc 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/impl/ProServiceImpl.java +++ b/securitycontrol-model/securitycontrol-system/src/main/java/com/securitycontrol/system/base/service/impl/ProServiceImpl.java @@ -1,10 +1,20 @@ package com.securitycontrol.system.base.service.impl; +import com.securitycontrol.common.core.utils.StringUtils; +import com.securitycontrol.common.core.web.domain.AjaxResult; +import com.securitycontrol.entity.system.base.dto.ProDto; +import com.securitycontrol.entity.system.base.dto.ProGxPlanDto; +import com.securitycontrol.entity.system.base.vo.ProVo; import com.securitycontrol.system.base.mapper.IProMapper; import com.securitycontrol.system.base.service.IProService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; /** * @author:cwchen @@ -13,8 +23,73 @@ import javax.annotation.Resource; * @description:工程管理-业务逻辑层 */ @Service(value = "IProService") +@Slf4j public class ProServiceImpl implements IProService { @Resource(name = "IProMapper") private IProMapper mapper; + + @Override + public List getProLists(ProDto dto) { + List list = new ArrayList<>(); + list.forEach(item -> { + List fileNums = mapper.getProFiles(item.getProId()); + item.setProImgFileNum(fileNums.get(0)); + item.setProFileNum(fileNums.get(1)); + }); + list = mapper.getProLists(dto); + return list; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult addOrUpdatePro(ProVo vo) { + try { + if (StringUtils.isBlank(vo.getProId())) { + + } else { + + } + mapper.addOrUpdatePro(vo); + } catch (Exception e) { + log.error("新增/修改工程", e); + //手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error(); + } + return AjaxResult.success(); + } + + @Override + public AjaxResult getProById(ProDto dto) { + ProVo vo = new ProVo(); + vo = mapper.getProById(dto); + return AjaxResult.success(vo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult delPro(ProDto dto) { + try { + mapper.delPro(dto); + } catch (Exception e) { + log.error("删除工程",e); + //手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return AjaxResult.success(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult delProGxPlan(ProGxPlanDto dto) { + try { + mapper.delProGxPlan(dto); + } catch (Exception e) { + log.error("删除工程工序计划",e); + //手动回滚异常 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return AjaxResult.success(); + } } diff --git a/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/base/ProMapper.xml b/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/base/ProMapper.xml index ee8dfeb..f4ef713 100644 --- a/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/base/ProMapper.xml +++ b/securitycontrol-model/securitycontrol-system/src/main/resources/mapper/base/ProMapper.xml @@ -1,5 +1,136 @@ + + + + INSERT INTO tb_project + + pro_id, + user_id, + sign_code, + bid_code, + pro_code, + pro_name, + pro_cost, + sg_unit, + jl_unit, + pro_type, + pro_scale, + manager, + pro_brief, + now_gx, + status, + plan_start_time, + plan_end_time, + start_time, + end_time, + org, + + + #{proId}, + #{userId}, + #{signCode}, + #{bidCode}, + #{proCode}, + #{proName}, + #{proCost}, + #{sgUnit}, + #{jlUnit}, + #{proType}, + #{proScale}, + #{manager}, + #{proBrief}, + #{nowGx}, + #{status}, + #{planStartTime}, + #{planEndTime}, + #{startTime}, + #{endTime}, + #{org}, + + + + UPDATE tb_project + + user_id = #{userId}, + sign_code = #{signCode}, + bid_code = #{bidCode}, + pro_code = #{proCode}, + pro_name = #{proName}, + pro_cost = #{proCost}, + sg_unit = #{sgUnit}, + jl_unit = #{jlUnit}, + pro_type = #{proType}, + pro_scale = #{proScale}, + manager = #{manager}, + now_gx = #{nowGx}, + status = #{status}, + plan_start_time = #{planStartTime}, + plan_end_time = #{planEndTime}, + start_time = #{startTime}, + end_time = #{endTime}, + org = #{org}, + + WHERE pro_id = #{proId} + + + + + + + + DELETE FROM tb_gx_plan WHERE + + + + + + + + \ No newline at end of file