Ver código fonte

合并通知单新增时根据合同编号取数

fanxw 2 meses atrás
pai
commit
4b7262fca3

+ 39 - 0
src/main/java/com/chinaitop/depot/business/controller/BusinessMergeNoticeController.java

@@ -0,0 +1,39 @@
1
+package com.chinaitop.depot.business.controller;
2
+
3
+import java.util.List;
4
+
5
+import javax.annotation.Resource;
6
+
7
+import org.springframework.http.MediaType;
8
+import org.springframework.web.bind.annotation.RequestMapping;
9
+import org.springframework.web.bind.annotation.RequestMethod;
10
+import org.springframework.web.bind.annotation.RestController;
11
+
12
+import com.chinaitop.depot.business.model.BusinessMergeNotice;
13
+import com.chinaitop.depot.business.model.BusinessMergeNoticeDetail;
14
+import com.chinaitop.depot.business.service.BusinessMergeNoticeService;
15
+
16
+import io.swagger.annotations.Api;
17
+import io.swagger.annotations.ApiImplicitParam;
18
+import io.swagger.annotations.ApiImplicitParams;
19
+import io.swagger.annotations.ApiOperation;
20
+
21
+@RestController
22
+@RequestMapping(value="/depot/business/businessMergeNotice")
23
+@Api(value= "BusinessMergeNoticeController", description = "合并通知单管理")
24
+public class BusinessMergeNoticeController {
25
+
26
+	@Resource
27
+	private BusinessMergeNoticeService businessMergeNoticeService;
28
+
29
+	@RequestMapping(value="/findByHtbhCondition",produces = MediaType.APPLICATION_JSON_VALUE,  method=RequestMethod.GET)
30
+	@ApiOperation(value="根据合同编号获取通知单数据列表", notes = "")
31
+	@ApiImplicitParams({
32
+		@ApiImplicitParam(name = "htbh", value = "合同编号", required=true, paramType = "query"),
33
+		@ApiImplicitParam(name = "orgId", value = "库ID", required=true, paramType = "query")
34
+	})
35
+    public List<BusinessMergeNoticeDetail> findByHtbhCondition(String htbh, Integer orgId) {
36
+		List<BusinessMergeNoticeDetail> list = businessMergeNoticeService.findByHtbhCondition(htbh, orgId);
37
+        return list;
38
+    }
39
+}

+ 18 - 0
src/main/java/com/chinaitop/depot/business/mapper/BusinessMergeNoticeMapper.java

@@ -0,0 +1,18 @@
1
+package com.chinaitop.depot.business.mapper;
2
+
3
+import java.util.List;
4
+
5
+import org.apache.ibatis.annotations.Param;
6
+
7
+import com.chinaitop.depot.business.model.BusinessMergeNotice;
8
+import com.chinaitop.depot.business.model.BusinessMergeNoticeDetail;
9
+
10
+public interface BusinessMergeNoticeMapper {
11
+
12
+	/**
13
+	 * 根据合同编号获取通知单数据列表
14
+	 * @param businessMergeNotice
15
+	 * @return
16
+	 */
17
+	List<BusinessMergeNoticeDetail> findByHtbhCondition(@Param("obj") BusinessMergeNoticeDetail obj);
18
+}

+ 16 - 0
src/main/java/com/chinaitop/depot/business/mapper/BusinessMergeNoticeMapper.xml

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3
+<mapper namespace="com.chinaitop.depot.business.mapper.BusinessMergeNoticeMapper" >
4
+  <!-- 根据合同编号获取通知单数据列表 -->
5
+  <select id="findByHtbhCondition" resultType="com.chinaitop.depot.business.model.BusinessMergeNoticeDetail" parameterType="map">
6
+	SELECT 
7
+      a.org_id orgId,a.id tzdid, a.bill_number tzdbh, a.shiping_count jhsl, a.contract htbh, c.khmc khmc, b.grain_kind lspz, b.house_id ch, b.warehouse_id hwh
8
+    FROM business_delivery_storage_notice a
9
+    LEFT JOIN business_store_ware_detail b on b.zid=a.id AND b.type='notice'
10
+	LEFT JOIN business_contract_receive c on c.htbh=a.contract
11
+	WHERE 1=1
12
+	AND a.contract = #{obj.htbh,jdbcType=VARCHAR}
13
+	AND a.org_id = #{obj.orgId,jdbcType=INTEGER}
14
+	ORDER BY a.create_time DESC
15
+  </select>
16
+</mapper>

+ 5 - 0
src/main/java/com/chinaitop/depot/business/model/BusinessMergeNotice.java

@@ -0,0 +1,5 @@
1
+package com.chinaitop.depot.business.model;
2
+
3
+public class BusinessMergeNotice {
4
+
5
+}

+ 51 - 0
src/main/java/com/chinaitop/depot/business/model/BusinessMergeNoticeDetail.java

@@ -0,0 +1,51 @@
1
+package com.chinaitop.depot.business.model;
2
+
3
+import java.math.BigDecimal;
4
+import java.util.Date;
5
+
6
+import com.fasterxml.jackson.annotation.JsonFormat;
7
+
8
+import io.swagger.annotations.ApiModelProperty;
9
+import lombok.Data;
10
+
11
+/**
12
+ * 合并通知单明细
13
+ * @author fxw
14
+ *
15
+ */
16
+@Data
17
+public class BusinessMergeNoticeDetail {
18
+
19
+	@ApiModelProperty(value = "主键唯一uuid")
20
+	private String id;
21
+	@ApiModelProperty(value = "库ID")
22
+	private Integer orgId;
23
+	@ApiModelProperty(value = "数据创建时间")
24
+	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
25
+	private Date cjsj;
26
+	@ApiModelProperty(value = "创建人")
27
+	private String cjr;
28
+	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
29
+	@ApiModelProperty(value = "最后修改时间")
30
+	private Date updatetime;
31
+	@ApiModelProperty(value = "数据类型(0:原通知单,1:目标通知单)")
32
+	private String datatype;
33
+	@ApiModelProperty(value = "通知单ID")
34
+	private String tzdid;
35
+	@ApiModelProperty(value = "通知单编号")
36
+	private String tzdbh;
37
+	@ApiModelProperty(value = "合同编号")
38
+	private String htbh;
39
+	@ApiModelProperty(value = "粮食品种")
40
+	private Integer lspz;
41
+	@ApiModelProperty(value = "客户名称")
42
+	private String khmc;
43
+	@ApiModelProperty(value = "仓房ID")
44
+	private Integer ch;
45
+	@ApiModelProperty(value = "货位ID")
46
+	private Integer hwh;
47
+	@ApiModelProperty(value = "原计划数量(kg)")
48
+	private BigDecimal jhsl;
49
+	@ApiModelProperty(value = "原剩余数量(kg)")
50
+	private BigDecimal sysl;
51
+}

+ 20 - 0
src/main/java/com/chinaitop/depot/business/service/BusinessMergeNoticeService.java

@@ -0,0 +1,20 @@
1
+package com.chinaitop.depot.business.service;
2
+
3
+import java.util.List;
4
+
5
+import org.springframework.stereotype.Service;
6
+
7
+import com.chinaitop.depot.business.model.BusinessMergeNotice;
8
+import com.chinaitop.depot.business.model.BusinessMergeNoticeDetail;
9
+
10
+public interface BusinessMergeNoticeService {
11
+
12
+	/**
13
+	 * 通过合同编号查询通知单数据
14
+	 * @param htbh 合同编号
15
+	 * @param orgId 库id
16
+	 * @return
17
+	 */
18
+	List<BusinessMergeNoticeDetail> findByHtbhCondition(String htbh, Integer orgId);
19
+
20
+}

+ 65 - 0
src/main/java/com/chinaitop/depot/business/service/impl/BusinessMergeNoticeServiceImpl.java

@@ -0,0 +1,65 @@
1
+package com.chinaitop.depot.business.service.impl;
2
+
3
+import java.math.BigDecimal;
4
+import java.util.List;
5
+import java.util.stream.Collectors;
6
+
7
+import javax.annotation.Resource;
8
+
9
+import org.springframework.stereotype.Service;
10
+import org.springframework.util.ObjectUtils;
11
+
12
+import com.chinaitop.depot.agile.model.BusinessScedule;
13
+import com.chinaitop.depot.business.mapper.BusinessMergeNoticeMapper;
14
+import com.chinaitop.depot.business.model.BusinessMergeNotice;
15
+import com.chinaitop.depot.business.model.BusinessMergeNoticeDetail;
16
+import com.chinaitop.depot.business.service.BusinessMergeNoticeService;
17
+import com.chinaitop.depot.business.service.FeignAgileService;
18
+
19
+@Service
20
+public class BusinessMergeNoticeServiceImpl implements BusinessMergeNoticeService {
21
+
22
+	@Resource
23
+	private BusinessMergeNoticeMapper businessMergeNoticeMapper;
24
+	@Resource
25
+	private FeignAgileService feignAgileService;
26
+
27
+	@Override
28
+	public List<BusinessMergeNoticeDetail> findByHtbhCondition(String htbh, Integer orgId) {
29
+		BusinessMergeNoticeDetail obj = new BusinessMergeNoticeDetail();
30
+		obj.setOrgId(orgId);
31
+		obj.setHtbh(htbh);
32
+		List<BusinessMergeNoticeDetail> tzd_list = businessMergeNoticeMapper.findByHtbhCondition(obj);
33
+		if (!ObjectUtils.isEmpty(tzd_list)) {
34
+			// 通过通知单id,去出入库查询.
35
+			List<String> tzdid_list = tzd_list.stream().map(BusinessMergeNoticeDetail::getTzdid).collect(Collectors.toList());
36
+			String tzdid_str = "('"+String.join("','", tzdid_list)+"')";
37
+			List<BusinessScedule> businessSceduleList = feignAgileService.getNoticeSceduleInNoticeId(tzdid_str);
38
+            if (businessSceduleList != null && businessSceduleList.size() > 0) {
39
+            	for (BusinessMergeNoticeDetail d : tzd_list) {
40
+            		// 循环出入库,查询的list.
41
+            		d.setSysl(new BigDecimal("0"));//先设置为0, 避免没有查到数据显示为空的情况
42
+                    for (BusinessScedule businessScedule : businessSceduleList) {
43
+                    	if (d.getTzdid().equals(businessScedule.getTzdId())) {
44
+
45
+                    		BigDecimal s = new BigDecimal(1000);
46
+                    		BigDecimal sumSysl = new BigDecimal(businessScedule.getSumSysl()).divide(s).setScale(3, BigDecimal.ROUND_DOWN);
47
+                    		d.setSysl(sumSysl);
48
+
49
+                			// 在出入库list中删除该数据,这样下次循环数量就会减少了.
50
+                			businessSceduleList.remove(businessScedule);
51
+                			// 跳出当前的出入库循环.
52
+                			break;
53
+                    	}
54
+                    }
55
+            	}
56
+            } else {
57
+            	for (BusinessMergeNoticeDetail d : tzd_list) {
58
+            		d.setSysl(new BigDecimal("0"));
59
+            	}
60
+            }
61
+		}
62
+		return tzd_list;
63
+	}
64
+
65
+}