Quellcode durchsuchen

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

liuyc vor 3 Jahren
Ursprung
Commit
f1a8b6c416

+ 47 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/MileagexyDTO.java

@@ -0,0 +1,47 @@
+package org.springblade.business.dto;
+
+import lombok.Data;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/13 11:29
+ * @description TODO
+ */
+@Data
+public class MileagexyDTO {
+    private Long id;
+    private Double value=0.0;		// 里程
+    private Double x=0.0;		// x
+    private Double y=0.0;
+    private Double r=0.0;         //半径
+    private Integer orderNum=0;     //顺序
+    private Integer type=0;     //类型 0 起点  1交点  2终点
+    private Double angle=0.0;     //方位角
+    private Double corner=0.0;     //转角
+    private String swing="右转";     //转向
+    private Double ls1=0.0;         //第一缓和线
+    private Double ls2=0.0;         //第二缓和线
+    private Double l=0.0;           //曲线长
+    private Double lc=0.0;          //圆曲线长
+    private Double t1=0.0;          //切线长1
+    private Double t2=0.0;          //切线长2
+    private Double d=0.0;          //切线差
+    private Double p1=0.0;          //
+    private Double q1=0.0;          //
+    private Double p2=0.0;          //
+    private Double q2=0.0;          //
+    private Double b01=0.0;
+    private Double b02=0.0;
+    private Double ljd=0.0;       //上个点到该点的长
+    private Double zh=0.0;    //直缓点
+    private Double zhx=0.0;		// x
+    private Double zhy=0.0;
+    private Double hy=0.0;    //缓圆点
+    private Double yh=0.0;//圆缓点
+    private Double hz=0.0;//缓直点
+    private Double hzx=0.0;		// x
+    private Double hzy=0.0;
+    private Double qz=0.0;//曲中点
+    private Double dlq=0.0;//   断链前里程
+    private Double dlh=0.0;//断链后里程
+}

+ 1 - 2
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Mileage.java

@@ -14,8 +14,7 @@ public class Mileage implements Serializable {
 
 	private static final long serialVersionUID = 1L;
 
-	private String projId;		// projId
-	private String orgId;		// orgId
+	private String projectId;		// projId
 	private String notes;		// notes
 	private String code;		// 名称
 

+ 10 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -5,6 +5,7 @@ import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -19,6 +20,15 @@ public interface WbsTreeContractClient {
      */
     String API_PREFIX = "/api/manager/WbsTreeContract";
 
+    @PostMapping(API_PREFIX + "/updateContractNodeParameter")
+    Boolean updateContractNodeParameter(@RequestBody WbsTreeContract node);
+
+    @GetMapping(API_PREFIX + "/getContractNodeByPrimaryKeyId")
+    WbsTreeContract getContractNodeByPrimaryKeyId(@RequestParam String primaryKeyId);
+
+    @PostMapping(API_PREFIX + "/removeContractTreeNode")
+    Boolean removeContractTreeNode(@RequestParam String ids);
+
     /**
      * 根据primaryKeyId获取合同段划分树的节点信息
      * @param primaryKeyId 节点唯一主键

+ 27 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreePrivateClient.java

@@ -0,0 +1,27 @@
+package org.springblade.manager.feign;
+
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+@FeignClient(value = APPLICATION_NAME_PREFIX +  "manager")
+public interface WbsTreePrivateClient {
+
+    /**
+     * 接口前缀
+     */
+    String API_PREFIX = "/api/manager/WbsTreePrivate";
+
+    @PostMapping(API_PREFIX + "/queryPeersNodeByProjectIdAndId")
+    WbsTreePrivate queryPeersNodeByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
+
+    @PostMapping(API_PREFIX + "/queryWbsTreePrivateByProjectIdAndId")
+    List<WbsTreePrivateVO> queryWbsTreePrivateByProjectIdAndId(@RequestParam String projectId, @RequestParam Long id);
+
+}

+ 0 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -328,7 +328,6 @@ public class ImageClassificationFileController extends BladeController {
 		}catch (Exception e){
 			e.printStackTrace();
 		}
-
 		//设置用户信息
 		setUserData(newFile, isCreate);
 		return newFile;

+ 114 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationQueryController.java → blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -31,9 +31,13 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
+import org.springblade.manager.feign.WbsTreePrivateClient;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
+import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springframework.web.bind.annotation.*;
@@ -45,25 +49,132 @@ import org.springblade.core.boot.ctrl.BladeController;
 import java.util.List;
 
 /**
- *  资料查询控制器
+ *  资料填报及查询控制器
  *
  * @author BladeX
  * @since 2022-06-08
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("/informationQuery")
+@RequestMapping("/informationWriteQuery")
 @Api(tags = "资料查询接口")
-public class InformationQueryController extends BladeController {
+public class InformationWriteQueryController extends BladeController {
 
 	private final ContractClient contractClient;
 
 	private final WbsTreeContractClient wbsTreeContractClient;
 
+	private final WbsTreePrivateClient wbsTreePrivateClient;
+
 	private final IInformationQueryService informationQueryService;
 
 	private final IDictBizClient dictBizClient;
 
+	/**
+	 * 修改节点信息
+	 * @param node 节点信息
+	 * @return 修改结果
+	 */
+	@PostMapping("/updateContractNodeParameter")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "修改节点信息")
+	@ApiImplicitParam(name = "node", value = "节点信息(目前只允许修改名称)")
+	public R<Boolean> updateContractNodeParameter(@RequestBody WbsTreeContract node){
+		//只允许修改节点名称
+		if(StringUtils.isEmpty(node.getDeptName())){
+			return R.data(false);
+		}
+		return R.data(this.wbsTreeContractClient.updateContractNodeParameter(node));
+	}
+
+	/**
+	 * 获取节点信息
+	 * @param primaryKeyId 节点的primaryKeyId
+	 * @return 节点信息
+	 */
+	@GetMapping("/getContractNodeByPrimaryKeyId")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "获取节点信息")
+	@ApiImplicitParam(name = "primaryKeyId", value = "节点的primaryKeyId")
+	public R<WbsTreeContract> getContractNodeByPrimaryKeyId(@RequestParam String primaryKeyId){
+		return R.data(this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(primaryKeyId));
+	}
+
+
+	/**
+	 * 删除节点
+	 * @param ids 节点的primaryKeyId
+	 * @return 删除结果
+	 */
+	@PostMapping("/removeContractTreeNode")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "删除节点")
+	@ApiImplicitParam(name = "ids", value = "节点的primaryKeyId")
+	public R<Boolean> removeContractTreeNode(@RequestParam String ids){
+		return R.data(this.wbsTreeContractClient.removeContractTreeNode(ids));
+	}
+
+	/**
+	 * 新增子节点
+	 * @param contractNodePrimaryKeyId 新增的节点所在位置,即当前点出菜单栏的节点PrimaryKeyId
+	 * @param projectNodePrimaryKeyId 被选中的新增节点
+	 * @return 新增结果
+	 */
+	@PostMapping("/saveContractTreeNode")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "新增节点及其子节点")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "contractNodePrimaryKeyId", value = "新增的节点所在位置,即当前点出菜单栏的节点PrimaryKeyId", required = true),
+			@ApiImplicitParam(name = "projectNodePrimaryKeyId", value = "被选中的新增节点", required = true)
+	})
+	public R<Boolean> saveContractTreeNode(@RequestParam String contractNodePrimaryKeyId, @RequestParam String projectNodePrimaryKeyId){
+		//先获取当前节点的信息
+		WbsTreeContract treeContract = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(contractNodePrimaryKeyId));
+		//判断新增
+
+		return null;
+	}
+
+	/**
+	 * 懒加载项目级工程划分树
+	 * @param projectId 项目ID
+	 * @param id 节点ID
+	 * @return 结果集
+	 */
+	@PostMapping("/queryWbsTreePrivateByProjectIdAndId")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "懒加载项目级工程划分树")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "projectId", value = "项目ID"),
+			@ApiImplicitParam(name = "id", value = "点击节点ID")
+	})
+	public R<List<WbsTreePrivateVO>> queryWbsTreePrivateByProjectIdAndId(@RequestParam String projectId, @RequestParam String id){
+		return R.data(this.wbsTreePrivateClient.queryWbsTreePrivateByProjectIdAndId(projectId, Long.parseLong(id)));
+	}
+
+	/**
+	 * 获取与当前节点平级的项目级节点
+	 * @param primaryKeyId 主键
+	 * @return 结果
+	 */
+	@PostMapping("/queryPeersNode")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取与当前节点平级的项目级节点")
+	@ApiImplicitParam(name = "primaryKeyId", value = "需要新增子节点的节点ID,即当前点出菜单栏的节点ID")
+	public R<WbsTreePrivate> queryPeersNode(@RequestParam String primaryKeyId){
+		if(StringUtils.isEmpty(primaryKeyId) || "null".equals(primaryKeyId)){
+			return R.data(null);
+		}
+
+		//首先获取当前节点信息
+		WbsTreeContract treeContract = this.wbsTreeContractClient.getContractWbsTreeByPrimaryKeyId(Long.parseLong(primaryKeyId));
+		//获取与其平级对应的项目级节点
+		WbsTreePrivate treePrivate = this.wbsTreePrivateClient.queryPeersNodeByProjectIdAndId(treeContract.getProjectId(), treeContract.getId());
+
+		return R.data(treePrivate);
+	}
+
+
 	/**
 	 * 获取流程状态分类和文件类型分类
 	 */

+ 16 - 10
blade-service/blade-business/src/main/java/org/springblade/business/controller/MileageController.java

@@ -9,6 +9,7 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springblade.business.dto.MileagePartDto;
+import org.springblade.business.dto.MileagexyDTO;
 import org.springblade.business.entity.Mileage;
 import org.springblade.business.entity.MileagePart;
 import org.springblade.business.entity.Mileagexy;
@@ -23,6 +24,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
@@ -119,10 +121,10 @@ public class MileageController {
     }
 
     @PostMapping("/import")
-    public R importXy(@RequestParam("file") MultipartFile file, String projectId,String partId ) throws Exception {
+    public R importXy(@RequestParam("file") MultipartFile file, String projectId,String partId,String contractId ) throws Exception {
         if(file != null&&Func.isNotEmpty(partId)) {
             if(Pattern.matches(".+(\\.xls)x?$", Objects.requireNonNull(file.getOriginalFilename()).toLowerCase(Locale.ROOT))) {
-             return   R.success(this.service.importMileagexy(file,AuthUtil.getUserId(),projectId,partId));
+             return   R.success(this.service.importMileagexy(file,AuthUtil.getUserId(),projectId,contractId,partId));
             } else {
                return   R.fail("文件格式不正确,请上传Excel文件");
             }
@@ -172,14 +174,18 @@ public class MileageController {
 
 
     @PostMapping("/update")
-    public R upDate (@RequestBody Mileagexy mileagexy){
-        if(mileagexy.getId()==null){
-            return R.fail("对象不存在");
+    public R upDate (@RequestBody MileagexyDTO mileagexy){
+        if(mileagexy.getId()!=null){
+            Mileagexy m= this.service.getById(mileagexy.getId());
+            if(m!=null){
+                BeanUtils.copyProperties(mileagexy,m);
+                m.setValueEnd(mileagexy.getValue()+mileagexy.getL());
+                //必须要设置angle
+                mileagexy.setAngle(m.getDu()+ Double.valueOf(m.getFen())/60+m.getMiao()/3600);
+                return R.status(this.service.updateById(m));
+            }
         }
-        mileagexy.setValueEnd(mileagexy.getValue()+mileagexy.getL());
-        //必须要设置angle
-        mileagexy.setAngle(mileagexy.getDu()+ Double.valueOf(mileagexy.getFen())/60+mileagexy.getMiao()/3600);
-        return R.status(this.service.updateById(mileagexy));
+        return R.fail("对象不存在");
     }
 
 
@@ -198,7 +204,7 @@ public class MileageController {
 
     @GetMapping("getZzList")
     public R<List<Mileage>> getZzList(Mileage mileage) {
-        List<Mileage> mileages = new ArrayList<>(MileageUtill.azimuthZzZbXy(mileage.getX(), mileage.getY(), mileage.getValue(), mileage.getB(), this.service.list(Wrappers.<Mileagexy>query().lambda().eq(Mileagexy::getPartId,mileage.getPartId()).eq(Mileagexy::getProjectId,mileage.getProjId()).orderByAsc(Mileagexy::getOrderNum))));
+        List<Mileage> mileages = new ArrayList<>(MileageUtill.azimuthZzZbXy(mileage.getX(), mileage.getY(), mileage.getValue(), mileage.getB(), this.service.list(Wrappers.<Mileagexy>query().lambda().eq(Mileagexy::getPartId,mileage.getPartId()).eq(Mileagexy::getProjectId,mileage.getProjectId()).orderByAsc(Mileagexy::getOrderNum))));
          if(CollectionUtil.isNotEmpty(mileages)){
             return R.data(mileages);
          }

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/UserViewProjectContractController.java

@@ -51,6 +51,11 @@ public class UserViewProjectContractController {
         }
         //获取当前用户的所有相关项目及合同段ID
         List<SaveUserInfoByProjectDTO> userDownAll = this.projectAssignmentUserClient.queryCurrentUserDownAllContractAndProjectId(user.getUserId());
+
+        if(userDownAll.size() == 0){
+            return R.data(null);
+        }
+
         //获取项目ID
         List<String> projectIds = userDownAll.stream().map(SaveUserInfoByProjectDTO::getProjectId).distinct().collect(Collectors.toList());
         //获取合同段ID

+ 2 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/MileagexyService.java

@@ -100,7 +100,7 @@ public class MileagexyService  extends BaseServiceImpl<MileagexyMapper, Mileagex
     }
 
 
-    public String importMileagexy(MultipartFile file,Long userId,String projectId, String partId) throws Exception {
+    public String importMileagexy(MultipartFile file,Long userId,String projectId, String contractId ,String partId) throws Exception {
         try {
             Workbook wb = WorkbookFactory.create(file.getInputStream());
             Sheet sheet = wb.getSheetAt(0);
@@ -144,6 +144,7 @@ public class MileagexyService  extends BaseServiceImpl<MileagexyMapper, Mileagex
                 obj.setProjectId(projectId);
                 obj.setValueEnd(obj.getValue()+obj.getL());
                 obj.setPartId(partId);
+                obj.setContractId(contractId);
                 obj.setPartNo(part.getPrefix());
                 //必须要设置angle
                 obj.setAngle(obj.getDu()+Double.valueOf(obj.getFen())/60+obj.getMiao()/3600);

+ 18 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -2,7 +2,9 @@ package org.springblade.manager.feign;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IWbsTreeContractService;
@@ -19,9 +21,24 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
 
     private final IWbsTreeContractService wbsTreeContractService;
 
+    @Override
+    public Boolean updateContractNodeParameter(WbsTreeContract node) {
+        return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getDeptName, node.getDeptName()).eq(WbsTreeContract::getPKeyId, node.getPKeyId()));
+    }
+
+    @Override
+    public WbsTreeContract getContractNodeByPrimaryKeyId(String primaryKeyId) {
+        return this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, primaryKeyId));
+    }
+
+    @Override
+    public Boolean removeContractTreeNode(String ids) {
+        return this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted, 1).in(WbsTreeContract::getPKeyId, Func.toLongList(ids)));
+    }
+
     @Override
     public WbsTreeContract getContractWbsTreeByPrimaryKeyId(Long primaryKeyId) {
-        return this.wbsTreeContractService.getById(primaryKeyId);
+        return this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, primaryKeyId).eq(WbsTreeContract::getIsDeleted, 0));
     }
 
     @Override

+ 35 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java

@@ -0,0 +1,35 @@
+package org.springblade.manager.feign;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.service.IWbsTreePrivateService;
+import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
+
+    private final IWbsTreePrivateService wbsTreePrivateService;
+
+    @Override
+    public List<WbsTreePrivateVO> queryWbsTreePrivateByProjectIdAndId(String projectId, Long id) {
+        List<WbsTreePrivate> result =  this.wbsTreePrivateService.list(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getParentId, id).eq(WbsTreePrivate::getIsDeleted, 0));
+        if(result != null && result.size() != 0){
+            //转换vo
+            return JSONArray.parseArray(JSONObject.toJSONString(result), WbsTreePrivateVO.class);
+        }
+        return null;
+    }
+
+    @Override
+    public WbsTreePrivate queryPeersNodeByProjectIdAndId(String projectId, Long id) {
+        return this.wbsTreePrivateService.getOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getProjectId, projectId).eq(WbsTreePrivate::getId, id).eq(WbsTreePrivate::getIsDeleted, 0));
+
+    }
+}