From bd74616204baf4e3f8bb124f142a07be8e5e9f13 Mon Sep 17 00:00:00 2001
From: 邱宇豪 <qyh123230312>
Date: 星期五, 03 十一月 2023 13:51:01 +0800
Subject: [PATCH] 20231103_qiuyh_发运计划

---
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/PipeOutPlanService.java          |   24 ++++
 hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/pipeinfo/entity/PipeDto.java                                     |    2 
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanEntity.java            |   34 +++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanMothEntity.java        |   33 +++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/impl/PipeOutPlanServiceImpl.java |  100 ++++++++++++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/mapper/PipeOutPlanMapper.java            |   82 +++++++++++++
 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/controller/PipeOutPlanController.java    |   47 +++++++
 hd/pipe/mobile/src/main/resources/mapping/PipeInfoMapper.xml                                                              |    7 
 8 files changed, 327 insertions(+), 2 deletions(-)

diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/controller/PipeOutPlanController.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/controller/PipeOutPlanController.java
new file mode 100644
index 0000000..af3be72
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/controller/PipeOutPlanController.java
@@ -0,0 +1,47 @@
+package com.thhy.materials.modules.biz.pipeoutplan.controller;
+
+import com.thhy.general.common.BasicResult;
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanEntity;
+import com.thhy.materials.modules.biz.pipeoutplan.service.PipeOutPlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 9:38:16
+ * 发运计划
+ */
+@RestController
+@RequestMapping(value = "pipeoutplan")
+public class PipeOutPlanController {
+
+	@Autowired
+	private PipeOutPlanService pipeOutPlanService;
+
+	@PostMapping("insert")
+	BasicResult insert(@RequestBody PipeOutPlanEntity pipeOutPlanEntity){
+		return pipeOutPlanService.insert(pipeOutPlanEntity);
+	}
+
+	@GetMapping("delete")
+	BasicResult delete(String pipeNeedId){
+		return pipeOutPlanService.delete(pipeNeedId);
+	}
+
+	@PostMapping("update")
+	BasicResult update(@RequestBody PipeOutPlanEntity pipeOutPlanEntity){
+		return pipeOutPlanService.update(pipeOutPlanEntity);
+	}
+
+	@GetMapping("selectInfo")
+	BasicResult selectInfo(String pipeNeedId){
+		return pipeOutPlanService.selectInfo(pipeNeedId);
+	}
+
+	@PostMapping("findAll")
+	BasicResult findAll(@RequestBody Map<String,Object> map){
+		return pipeOutPlanService.findAll(map);
+	}
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanEntity.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanEntity.java
new file mode 100644
index 0000000..7299577
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanEntity.java
@@ -0,0 +1,34 @@
+package com.thhy.materials.modules.biz.pipeoutplan.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.omg.CORBA.PRIVATE_MEMBER;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 9:40:41
+ * 发运计划实体
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class PipeOutPlanEntity {
+
+	private String planOutId;//计划ID
+	private String proId;//项目ID
+	private Integer planYear;//年份
+	private Integer needPipeNum;//需求合计多少片
+	private Date createTime;//创建时间
+	private String createUser;//创建人
+	private Date updateTime;//修改时间
+	private String updateUser;//修改人
+	private Integer isUse;//1Y0N
+
+	private List<PipeOutPlanMothEntity> monthList;
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanMothEntity.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanMothEntity.java
new file mode 100644
index 0000000..dd43481
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/entity/PipeOutPlanMothEntity.java
@@ -0,0 +1,33 @@
+package com.thhy.materials.modules.biz.pipeoutplan.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 10:52:23
+ * 发运计划月份实体
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class PipeOutPlanMothEntity {
+	private String id;
+	private String pipeOutPlanId;
+	private Integer month;
+
+	/**
+	 * 管片需求数量
+	 */
+	private Integer planProduct;
+
+	private String proId;
+
+	/**
+	 * 已发运管片数量
+	 */
+	private Integer completePlanProduct;
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/mapper/PipeOutPlanMapper.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/mapper/PipeOutPlanMapper.java
new file mode 100644
index 0000000..b215f4d
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/mapper/PipeOutPlanMapper.java
@@ -0,0 +1,82 @@
+package com.thhy.materials.modules.biz.pipeoutplan.mapper;
+
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanEntity;
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanMothEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 9:41:37
+ * 发运计划mapper
+ */
+@Mapper
+public interface PipeOutPlanMapper {
+
+	/**
+	 * 新增发运计划表
+	 * @param pipeOutPlanEntity
+	 */
+	void insert(PipeOutPlanEntity pipeOutPlanEntity);
+
+	/**
+	 * 新增发运计划月数表
+	 * @param pipeOutPlanMothEntity
+	 */
+	void insertMoth(PipeOutPlanMothEntity pipeOutPlanMothEntity);
+
+	/**
+	 * 删除发运计划表
+	 * @param pipeNeedId
+	 */
+	void delete(String pipeNeedId);
+
+	/**
+	 * 删除发运计划月数表
+	 * @param pipeNeedId
+	 */
+	void deleteMoth(String pipeNeedId);
+
+	/**
+	 * 更新发运计划表
+	 * @param pipeOutPlanEntity
+	 */
+	void update(PipeOutPlanEntity pipeOutPlanEntity);
+
+	/**
+	 * 查询单条发运计划表
+	 * @param pipeNeedId
+	 * @return
+	 */
+	PipeOutPlanEntity selectInfo(String pipeNeedId);
+
+	PipeOutPlanEntity selectInfoByProIdAndYear(
+			@Param("proId") String proId,
+			@Param("planYear") Integer year);
+
+	/**
+	 * 查询发运计划列表
+	 * @param map
+	 * @return
+	 */
+	List<PipeOutPlanEntity> findAll(Map<String,Object> map);
+
+	/**
+	 * 查询发运计划月数表
+	 * @param pipeNeedId
+	 * @return
+	 */
+	List<PipeOutPlanMothEntity> findMothList(String pipeNeedId);
+
+	/**
+	 * 查询每月数量
+	 * @param proId
+	 * @param year
+	 * @return
+	 */
+	List<PipeOutPlanMothEntity> findMothListByProIdAndYear(@Param("proId") String proId,
+	                                                       @Param("year") String year);
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/PipeOutPlanService.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/PipeOutPlanService.java
new file mode 100644
index 0000000..0cadff3
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/PipeOutPlanService.java
@@ -0,0 +1,24 @@
+package com.thhy.materials.modules.biz.pipeoutplan.service;
+
+import com.thhy.general.common.BasicResult;
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanEntity;
+
+import java.util.Map;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 9:42:10
+ * 发运计划逻辑接口
+ */
+public interface PipeOutPlanService {
+
+	BasicResult insert(PipeOutPlanEntity pipeOutPlanEntity);
+
+	BasicResult delete(String pipeNeedId);
+
+	BasicResult update(PipeOutPlanEntity pipeOutPlanEntity);
+
+	BasicResult selectInfo(String pipeNeedId);
+
+	BasicResult findAll(Map<String,Object> map);
+}
diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/impl/PipeOutPlanServiceImpl.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/impl/PipeOutPlanServiceImpl.java
new file mode 100644
index 0000000..40f5c7f
--- /dev/null
+++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/pipeoutplan/service/impl/PipeOutPlanServiceImpl.java
@@ -0,0 +1,100 @@
+package com.thhy.materials.modules.biz.pipeoutplan.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.thhy.general.common.BasicResult;
+import com.thhy.general.config.SysUserInfo;
+import com.thhy.general.utils.UUIDUtils;
+import com.thhy.general.utils.UserInfoUtils;
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanEntity;
+import com.thhy.materials.modules.biz.pipeoutplan.entity.PipeOutPlanMothEntity;
+import com.thhy.materials.modules.biz.pipeoutplan.mapper.PipeOutPlanMapper;
+import com.thhy.materials.modules.biz.pipeoutplan.service.PipeOutPlanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author QiuYuHao
+ * @CreateDate 2023-11-03 9:42:41
+ * 发运管理逻辑实现层
+ */
+@Service
+public class PipeOutPlanServiceImpl implements PipeOutPlanService {
+
+	@Autowired
+	private PipeOutPlanMapper pipeOutPlanMapper;
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public BasicResult insert(PipeOutPlanEntity pipeOutPlanEntity) {
+		PipeOutPlanEntity isExit = pipeOutPlanMapper.selectInfoByProIdAndYear(pipeOutPlanEntity.getProId(), pipeOutPlanEntity.getPlanYear());
+		if (isExit == null){
+			return BasicResult.faild("500","同一项目、年份有且只有一个计划",null);
+		}
+		String planOutId = UUIDUtils.create();
+		pipeOutPlanEntity.setPlanOutId(planOutId);
+		pipeOutPlanMapper.insert(pipeOutPlanEntity);
+		List<PipeOutPlanMothEntity> monthList = pipeOutPlanEntity.getMonthList();
+		monthList.forEach(vo->{
+			vo.setPipeOutPlanId(planOutId);
+			pipeOutPlanMapper.insertMoth(vo);
+		});
+		return BasicResult.success();
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public BasicResult delete(String pipeNeedId) {
+		pipeOutPlanMapper.delete(pipeNeedId);
+		pipeOutPlanMapper.deleteMoth(pipeNeedId);
+		return BasicResult.success();
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public BasicResult update(PipeOutPlanEntity pipeOutPlanEntity) {
+		PipeOutPlanEntity isExit = pipeOutPlanMapper.selectInfoByProIdAndYear(pipeOutPlanEntity.getProId(), pipeOutPlanEntity.getPlanYear());
+		if (isExit == null){
+			return BasicResult.faild("500","同一项目、年份有且只有一个计划",null);
+		}
+		pipeOutPlanMapper.update(pipeOutPlanEntity);
+		String planOutId = pipeOutPlanEntity.getPlanOutId();
+		pipeOutPlanMapper.deleteMoth(planOutId);
+		List<PipeOutPlanMothEntity> monthList = pipeOutPlanEntity.getMonthList();
+		monthList.forEach(vo->{
+			vo.setPipeOutPlanId(planOutId);
+			pipeOutPlanMapper.insertMoth(vo);
+		});		return BasicResult.success();
+	}
+
+	@Override
+	public BasicResult selectInfo(String pipeNeedId) {
+		PipeOutPlanEntity pipeOutPlanEntity = pipeOutPlanMapper.selectInfo(pipeNeedId);
+		List<PipeOutPlanMothEntity> mothList = pipeOutPlanMapper.findMothList(pipeNeedId);
+		pipeOutPlanEntity.setMonthList(mothList);
+		return BasicResult.success(pipeOutPlanEntity);
+	}
+
+	@Override
+	public BasicResult findAll(Map<String, Object> map) {
+		Integer pageNum = (Integer) map.get("pageNum");
+		Integer pageSize = (Integer) map.get("pageSize");
+		PageHelper.startPage(pageNum,pageSize);
+		SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
+		map.put("companyId",userInfo.getCompanyId());
+		List<PipeOutPlanEntity> all = pipeOutPlanMapper.findAll(map);
+		all.forEach(obj->{
+			String proId = obj.getProId();
+			Integer planYear = obj.getPlanYear();
+			obj.setMonthList(pipeOutPlanMapper.findMothListByProIdAndYear(proId,planYear.toString()));
+		});
+		return BasicResult.success(new PageInfo<>(all));
+	}
+
+
+
+}
diff --git a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/pipeinfo/entity/PipeDto.java b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/pipeinfo/entity/PipeDto.java
index 53c41d4..76a9e0c 100644
--- a/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/pipeinfo/entity/PipeDto.java
+++ b/hd/pipe/mobile/src/main/java/com/thhy/mobile/modules/biz/pipeinfo/entity/PipeDto.java
@@ -47,4 +47,6 @@
     private String num;
 
     private String segmentId;
+
+    private String yearMonth;
 }
diff --git a/hd/pipe/mobile/src/main/resources/mapping/PipeInfoMapper.xml b/hd/pipe/mobile/src/main/resources/mapping/PipeInfoMapper.xml
index e2ad715..46ff19f 100644
--- a/hd/pipe/mobile/src/main/resources/mapping/PipeInfoMapper.xml
+++ b/hd/pipe/mobile/src/main/resources/mapping/PipeInfoMapper.xml
@@ -195,8 +195,11 @@
                  <if test="segmentId!=null">
                      tpi.segment_id = #{segmentId} AND
                  </if>
-            </trim>
-        </where>
+                 <if test="yearMonth!=null">
+                     out_mod_time like CONCAT(#{yearMonth},'%') AND
+                 </if>
+             </trim>
+         </where>
          order by tpi.check_time desc
          ) a
          <if test="groupId != null and groupId !=''">

--
Gitblit v1.9.3