|
@@ -1,6 +1,7 @@
|
|
|
package com.steerinfo.dil.controller;
|
|
|
|
|
|
import com.steerinfo.dil.feign.TmsTruckFeign;
|
|
|
+import com.steerinfo.dil.mapper.OmstruckOrderMapper;
|
|
|
import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
|
|
|
import com.steerinfo.dil.model.OmstruckOrder;
|
|
|
import com.steerinfo.dil.service.impl.OmstruckOrderSeparateServiceImpl;
|
|
@@ -35,6 +36,9 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
|
|
|
@Autowired
|
|
|
OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private OmstruckOrderMapper omstruckOrderMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
OmstruckOrderSeparateServiceImpl omstruckOrderSeparateService;
|
|
|
|
|
@@ -251,6 +255,108 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
|
|
|
return success(capacityAllOrderList);
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation(value = "该车牌号下的该月账期的物资数量")
|
|
|
+ @PostMapping("/getMatrialWeight")
|
|
|
+ public RESTfulResult getMatrialWeight(String capacityNumber,String date){
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ date += "-01 00:00:00";
|
|
|
+ map.put("capacityNumber",capacityNumber);
|
|
|
+ DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ LocalDateTime ldt = LocalDateTime.parse(date,sdf);
|
|
|
+ try {
|
|
|
+ if(date != null){
|
|
|
+ int month = ldt.getMonth().getValue();
|
|
|
+ int year = ldt.getYear();
|
|
|
+ // 判断是否是一月,一月则减一年,月份回到12
|
|
|
+ if (month == 1) {
|
|
|
+ map.put("startDate", (year - 1) + "-" + 12 + "-" + 26);
|
|
|
+ }
|
|
|
+ // 非一月只需减少一个月份
|
|
|
+ if (month != 1){
|
|
|
+ if (month > 10) {
|
|
|
+ map.put("startDate", year + "-" + (month - 1) + "-" + 26);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ map.put("startDate", year + "-0" + (month - 1) + "-" + 26);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (month >= 10) {
|
|
|
+ // 结束时间为当月25号
|
|
|
+ map.put("endDate", year + "-" + month + "-" + 25);
|
|
|
+ }
|
|
|
+ if (month < 10) {
|
|
|
+ // 结束时间为当月25号
|
|
|
+ map.put("endDate", year + "-0" + month + "-" + 25);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(map);
|
|
|
+ List<Map<String,Object>> matrialList=new LinkedList<>();
|
|
|
+ //把物资的值都给求出来并放到数据中去(先只测销售钢材的)
|
|
|
+ for (Map<String, Object> stringObjectMap : capacityAllOrderList) {
|
|
|
+ BigDecimal orderId = DataChange.dataToBigDecimal(stringObjectMap.get("orderId"));
|
|
|
+ Integer orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(orderId);
|
|
|
+ String steelJudge = "steel";
|
|
|
+// if (orderType==1){
|
|
|
+ List<Map<String, Object>> materialMes = omstruckOrderMapper.getMaterialMesForGrossWeight(orderId,steelJudge);
|
|
|
+ for (Map<String, Object> materialMe : materialMes) {
|
|
|
+ String materialName = (String) materialMe.get("materialName");
|
|
|
+ BigDecimal netWeight = DataChange.dataToBigDecimal(materialMe.get("netWeight"));
|
|
|
+ if (contains(matrialList,materialName)){
|
|
|
+ //把值给存入进去
|
|
|
+ addSomeThing(matrialList,materialName,netWeight);
|
|
|
+ }else {
|
|
|
+ if (netWeight.compareTo(BigDecimal.ZERO)==0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Map<String,Object> map1=new HashMap<>();
|
|
|
+ map1.put("materialName",materialName);
|
|
|
+ map1.put("netWeight",netWeight);
|
|
|
+ matrialList.add(map1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+// }
|
|
|
+ }
|
|
|
+ return success(addChinese(matrialList));
|
|
|
+ }
|
|
|
+
|
|
|
+ //给每个值的后面加个吨字
|
|
|
+ private List<Map<String,Object>> addChinese(List<Map<String, Object>> matrialList) {
|
|
|
+ for (Map<String, Object> map : matrialList) {
|
|
|
+ map.put("netWeight",map.get("netWeight")+"吨");
|
|
|
+ }
|
|
|
+ return matrialList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean contains(List<Map<String,Object>> matrialList,String materialName){
|
|
|
+ if (matrialList.isEmpty()){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ for (Map<String, Object> map : matrialList) {
|
|
|
+ if (map.get("materialName").equals(materialName)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void addSomeThing(List<Map<String,Object>> matrialList,String materialName,BigDecimal netWeight){
|
|
|
+ if (netWeight.compareTo(BigDecimal.ZERO)==0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (Map<String, Object> map : matrialList) {
|
|
|
+ if (map.get("materialName").equals(materialName)){
|
|
|
+ BigDecimal weight= DataChange.dataToBigDecimal(map.get("netWeight"));
|
|
|
+ map.put("materialName",materialName);
|
|
|
+ map.put("netWeight",weight.add(netWeight));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
@ApiOperation(value = "根据运单id关闭运输订单")
|
|
|
@PostMapping("/closeOrder")
|
|
|
public RESTfulResult closeOrder(@RequestParam Integer orderId){
|