Explorar o código

'内转预约'

HUJIANGUO %!s(int64=3) %!d(string=hai) anos
pai
achega
ed833f0e7f

+ 1 - 1
pom.xml

@@ -111,7 +111,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-                        <param>AMSTRUCK_REQUIREMENT_PLAN</param><!--销售计划-->
+                        <param>AMSTRUCK_REQUIREMENT_MATERIAL</param><!--销售计划-->
 <!--                        <param>AMS_SALE_PLAN_MATERIAL</param>&lt;!&ndash;销售计划物资中间表&ndash;&gt;-->
 <!--                        <param>AMSTRUCK_RAIL_DAYPLAN</param>&lt;!&ndash;销售计划物资中间表&ndash;&gt;-->
 <!--                        <param>AMS_CONTRACT_TRANSPORT_PRICE</param>&lt;!&ndash;销售订单&ndash;&gt;-->

+ 39 - 7
src/main/java/com/steerinfo/dil/controller/AmstruckInwardPlanController.java

@@ -10,11 +10,13 @@ import com.steerinfo.framework.service.pagehelper.PageHelper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiModelProperty;
+import org.omg.CORBA.OBJ_ADAPTER;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -73,15 +75,24 @@ public class AmstruckInwardPlanController extends BaseRESTfulController {
         List<Map<String,Object>> mapList = amstruckInwardPlanService.selectInwardPlanToUpdate(planId);
         return success(mapList);
     }
-
     /**
      * 下发运输计划
      */
-    @PostMapping("/downTruckPlan/{planId}")
-    public RESTfulResult downTruckPlan(@PathVariable("planId") BigDecimal planId) {
-        int result = amstruckInwardPlanService.downTruckPlan(planId);
+    @PostMapping("/downTruckPlan")
+    public RESTfulResult downTruckPlan(@RequestBody List<Map<String, Object>> mapList) {
+        int result = amstruckInwardPlanService.downTruckPlan(mapList);
         return success(result);
     }
+
+    /**
+     * 接收计划
+     */
+    @PostMapping("/receiveInwardPlan/{planId}")
+    public RESTfulResult receiveInwardPlan(@PathVariable("planId") BigDecimal planId) {
+        int result = amstruckInwardPlanService.receiveInwardPlan(planId);
+        return success(result);
+    }
+
     /**
      * 展示未下发的运输计划
      * @param mapValue
@@ -94,13 +105,26 @@ public class AmstruckInwardPlanController extends BaseRESTfulController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
             @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
-            @ApiImplicitParam(name = "apiId", value = "181", required = false, dataType = "BigDecimal")
+            @ApiImplicitParam(name = "apiId", value = "0:257/1,2:258", required = false, dataType = "BigDecimal")
     })
     @PostMapping("/getTruckPlanList")
     public RESTfulResult getTruckPlanList(@RequestBody(required = false) Map<String,Object> mapValue,
                                           Integer pageNum,
                                           Integer pageSize,
-                                          Integer apiId) {
+                                          Integer apiId,
+                                          Integer planStatus,
+                                          Integer carrierId,
+                                          Integer planId) {
+        if (mapValue == null) {
+            mapValue = new HashMap<>();
+        }
+        if (carrierId != null && !"undefined".equals(carrierId.toString())) {
+            mapValue.put("carrierId",new BigDecimal(carrierId));
+        }
+        if (planId != null && !"undefined".equals(planId.toString())) {
+            mapValue.put("planId",new BigDecimal(planId));
+        }
+        mapValue.put("planStatus",new BigDecimal(planStatus));
         List<Map<String, Object>> list = amstruckInwardPlanService.getTruckPlanList(mapValue);
         PageHelper.startPage(pageNum, pageSize);
         //分页查询数据
@@ -109,5 +133,13 @@ public class AmstruckInwardPlanController extends BaseRESTfulController {
         return success(data);
     }
 
-
+    /**
+     * 承运商下拉
+     * @return
+     */
+    @GetMapping("/getCarrierList")
+    public RESTfulResult getCarrierList() {
+        List<Map<String,Object>> mapList = amstruckInwardPlanService.getCarrierList();
+        return success(mapList);
+    }
 }

+ 2 - 2
src/main/java/com/steerinfo/dil/controller/AmstruckInwardRequirementController.java

@@ -50,8 +50,8 @@ public class AmstruckInwardRequirementController extends BaseRESTfulController {
      *新增用车需求
      */
     @PostMapping("/addTruckRequirement")
-    public RESTfulResult addTruckRequirement(@RequestBody AmstruckInwardRequirement amstruckInwardRequirement) {
-        int result = amstruckInwardRequirementService.insert(amstruckInwardRequirement);
+    public RESTfulResult addTruckRequirement(@RequestBody Map<String,Object> mapValue) {
+        int result = amstruckInwardRequirementService.insert(mapValue);
         return success(result);
     }
     /**

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.java

@@ -18,4 +18,8 @@ public interface AmstruckInwardPlanMapper extends IBaseMapper<AmstruckInwardPlan
 
     // 查询修改渲染
     List<Map<String, Object>> selectInwardPlanToUpdate(BigDecimal planId);
+
+    List<Map<String, Object>> getCarrierList();
+
+    List<Map<String, Object>> getIssuedPlanList(Map<String, Object> mapValue);
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/AmstruckInwardRequirementMapper.java

@@ -36,4 +36,7 @@ public interface AmstruckInwardRequirementMapper extends IBaseMapper<AmstruckInw
 
     // 展示用车地点
     List<Map<String, Object>> getWareHouse(Map<String, Object> mapValue);
+
+    // 拿到物资id
+    BigDecimal getMaterialId(BigDecimal purchaseOrderId);
 }

+ 14 - 0
src/main/java/com/steerinfo/dil/mapper/AmstruckRequirementMaterialMapper.java

@@ -0,0 +1,14 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.AmstruckRequirementMaterial;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import java.math.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+@Mapper
+public interface AmstruckRequirementMaterialMapper extends IBaseMapper<AmstruckRequirementMaterial, BigDecimal> {
+
+    @Select("select seq__REQUIREMENT_MATERIAL.nextval from dual")
+    BigDecimal selectRequirementMaterialId();
+}

+ 25 - 10
src/main/java/com/steerinfo/dil/model/AmstruckInwardPlan.java

@@ -3,7 +3,6 @@ package com.steerinfo.dil.model;
 import com.steerinfo.framework.model.IBasePO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -76,18 +75,16 @@ public class AmstruckInwardPlan implements IBasePO<BigDecimal> {
     private String insertUpdateRemark;
 
     /**
-     * 逻辑删除(DELETED,DECIMAL,38)
+     * 0:未删除;1:已删除(DELETED,DECIMAL,0)
      */
-    @ApiModelProperty(value="逻辑删除",required=false)
+    @ApiModelProperty(value="0:未删除;1:已删除",required=false)
     private BigDecimal deleted;
 
-    public BigDecimal getDeleted() {
-        return deleted;
-    }
-
-    public void setDeleted(BigDecimal deleted) {
-        this.deleted = deleted;
-    }
+    /**
+     * 计划下发人(PLAN_ISSUE_NAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="计划下发人",required=false)
+    private String planIssueName;
 
     private static final long serialVersionUID = 1L;
 
@@ -189,6 +186,22 @@ public class AmstruckInwardPlan implements IBasePO<BigDecimal> {
         this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
     }
 
+    public BigDecimal getDeleted() {
+        return deleted;
+    }
+
+    public void setDeleted(BigDecimal deleted) {
+        this.deleted = deleted;
+    }
+
+    public String getPlanIssueName() {
+        return planIssueName;
+    }
+
+    public void setPlanIssueName(String planIssueName) {
+        this.planIssueName = planIssueName == null ? null : planIssueName.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -206,6 +219,8 @@ public class AmstruckInwardPlan implements IBasePO<BigDecimal> {
         sb.append(", updateUsername=").append(updateUsername);
         sb.append(", updateTime=").append(updateTime);
         sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", deleted=").append(deleted);
+        sb.append(", planIssueName=").append(planIssueName);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 183 - 0
src/main/java/com/steerinfo/dil/model/AmstruckRequirementMaterial.java

@@ -0,0 +1,183 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="需求物资中间表")
+public class AmstruckRequirementMaterial implements IBasePO<BigDecimal> {
+    /**
+     * 主键ID(REQUIREMENT_MATERIAL_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键ID",required=false)
+    private BigDecimal requirementMaterialId;
+
+    /**
+     * 需求ID(REQUIREMENT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="需求ID",required=false)
+    private BigDecimal requirementId;
+
+    /**
+     * 物资ID(MATERIAL_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="物资ID",required=false)
+    private BigDecimal materialId;
+
+    /**
+     * 物资重量(MATERIAL_WEIGHT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="物资重量",required=false)
+    private BigDecimal materialWeight;
+
+    /**
+     * 物资数量(MATERIAL_COUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="物资数量",required=false)
+    private BigDecimal materialCount;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.requirementMaterialId;
+    }
+
+    @Override
+    public void setId(BigDecimal requirementMaterialId) {
+        this.requirementMaterialId = requirementMaterialId;
+    }
+
+    public BigDecimal getRequirementMaterialId() {
+        return requirementMaterialId;
+    }
+
+    public void setRequirementMaterialId(BigDecimal requirementMaterialId) {
+        this.requirementMaterialId = requirementMaterialId;
+    }
+
+    public BigDecimal getRequirementId() {
+        return requirementId;
+    }
+
+    public void setRequirementId(BigDecimal requirementId) {
+        this.requirementId = requirementId;
+    }
+
+    public BigDecimal getMaterialId() {
+        return materialId;
+    }
+
+    public void setMaterialId(BigDecimal materialId) {
+        this.materialId = materialId;
+    }
+
+    public BigDecimal getMaterialWeight() {
+        return materialWeight;
+    }
+
+    public void setMaterialWeight(BigDecimal materialWeight) {
+        this.materialWeight = materialWeight;
+    }
+
+    public BigDecimal getMaterialCount() {
+        return materialCount;
+    }
+
+    public void setMaterialCount(BigDecimal materialCount) {
+        this.materialCount = materialCount;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", requirementMaterialId=").append(requirementMaterialId);
+        sb.append(", requirementId=").append(requirementId);
+        sb.append(", materialId=").append(materialId);
+        sb.append(", materialWeight=").append(materialWeight);
+        sb.append(", materialCount=").append(materialCount);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 5 - 1
src/main/java/com/steerinfo/dil/service/IAmstruckInwardPlanService.java

@@ -30,7 +30,11 @@ public interface IAmstruckInwardPlanService extends IBaseService<AmstruckInwardP
 
     int updateTruckPlan(AmstruckInwardPlan amstruckInwardPlan);
 
-    int downTruckPlan(BigDecimal planId);
+    int downTruckPlan(List<Map<String,Object>> mapList);
 
     List<Map<String, Object>> selectInwardPlanToUpdate(BigDecimal planId);
+
+    List<Map<String, Object>> getCarrierList();
+
+    int receiveInwardPlan(BigDecimal planId);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IAmstruckInwardRequirementService.java

@@ -22,7 +22,7 @@ import java.util.Map;
  */
 public interface IAmstruckInwardRequirementService extends IBaseService<AmstruckInwardRequirement, BigDecimal> {
 
-    int insert(AmstruckInwardRequirement amstruckInwardRequirement);
+    int insert(Map<String,Object> mapValue);
 
     List<Map<String, Object>> getTruckRequirementList(Map<String, Object> mapValue);
 

+ 50 - 10
src/main/java/com/steerinfo/dil/service/impl/AmstruckInwardPlanServiceImpl.java

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.mapper.AmstruckInwardPlanMapper;
+import com.steerinfo.dil.mapper.AmstruckRequirementPlanMapper;
 import com.steerinfo.dil.model.AmstruckInwardPlan;
 import com.steerinfo.dil.model.AmstruckInwardRequirement;
 import com.steerinfo.dil.model.AmstruckRequirementPlan;
@@ -10,8 +11,10 @@ import com.steerinfo.dil.service.IAmstruckRequirementPlanService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.service.impl.BaseServiceImpl;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -39,25 +42,27 @@ public class AmstruckInwardPlanServiceImpl extends BaseServiceImpl<AmstruckInwar
     @Autowired
     private IAmstruckInwardRequirementService amstruckInwardRequirementService;
     @Autowired
-    private IAmstruckRequirementPlanService amstruckRequirementPlanService;
+    private AmstruckRequirementPlanMapper amstruckRequirementPlanMapper;
     @Override
     protected IBaseMapper<AmstruckInwardPlan, BigDecimal> getMapper() {
         return amstruckInwardPlanMapper;
     }
 
+    @Transactional
     @Override
     public int insert(Map<String,Object> mapValue) {
         BigDecimal requirementId=new BigDecimal(mapValue.get("requirementId").toString());
         AmstruckRequirementPlan amstruckRequirementPlan = new AmstruckRequirementPlan();
         BigDecimal planId=amstruckInwardPlanMapper.selectOtherId();
+        BigDecimal requirementPlanId = amstruckRequirementPlanMapper.selectOtherId();
+        amstruckRequirementPlan.setRequirementPlanId(requirementPlanId);
         amstruckRequirementPlan.setPlanId(planId);
         amstruckRequirementPlan.setRequirementId(requirementId);
         amstruckRequirementPlan.setInsertTime(new Date());
         amstruckRequirementPlan.setInsertUsername("admin");
         amstruckRequirementPlan.setInsertUpdateRemark("无");
-
         //在中间表中将需求与计划绑定
-        amstruckRequirementPlanService.insert(requirementId,planId);
+        amstruckRequirementPlanMapper.insertSelective(amstruckRequirementPlan);
         AmstruckInwardPlan amstruckInwardPlan=new AmstruckInwardPlan();
         //设置主键
         amstruckInwardPlan.setPlanId(planId);
@@ -80,7 +85,15 @@ public class AmstruckInwardPlanServiceImpl extends BaseServiceImpl<AmstruckInwar
 
     @Override
     public List<Map<String, Object>> getTruckPlanList(Map<String, Object> mapValue) {
-        return amstruckInwardPlanMapper.getTruckPlanList(mapValue);
+        BigDecimal planStatus = (BigDecimal)mapValue.get("planStatus");
+        List<Map<String,Object>> mapList;
+        if (planStatus.intValue() == 0) {
+            mapList = amstruckInwardPlanMapper.getTruckPlanList(mapValue);
+        }
+        else {
+            mapList = amstruckInwardPlanMapper.getIssuedPlanList(mapValue);
+        }
+        return mapList;
     }
 
     /**
@@ -111,15 +124,20 @@ public class AmstruckInwardPlanServiceImpl extends BaseServiceImpl<AmstruckInwar
 
     /**
      * 下发计划
-     * @param planId
+     * @param mapList
      * @return
      */
     @Override
-    public int downTruckPlan(BigDecimal planId) {
-        AmstruckInwardPlan amstruckInwardPlan = amstruckInwardPlanMapper.selectByPrimaryKey(planId);
-        amstruckInwardPlan.setPlanStatus(new BigDecimal(1));
-        amstruckInwardPlan.setPlanIssueTime(new Date());
-        int result = amstruckInwardPlanMapper.updateByPrimaryKeySelective(amstruckInwardPlan);
+    public int downTruckPlan(List<Map<String,Object>> mapList) {
+        int result = 0;
+        for (Map<String,Object> map : mapList) {
+            Integer planId = (Integer) map.get("planId");
+            AmstruckInwardPlan amstruckInwardPlan = amstruckInwardPlanMapper.selectByPrimaryKey(new BigDecimal(planId));
+            amstruckInwardPlan.setPlanStatus(new BigDecimal(1));
+            amstruckInwardPlan.setPlanIssueName("admin");
+            amstruckInwardPlan.setPlanIssueTime(new Date());
+            result += amstruckInwardPlanMapper.updateByPrimaryKeySelective(amstruckInwardPlan);
+        }
         return result;
     }
 
@@ -132,4 +150,26 @@ public class AmstruckInwardPlanServiceImpl extends BaseServiceImpl<AmstruckInwar
     public List<Map<String, Object>> selectInwardPlanToUpdate(BigDecimal planId) {
         return amstruckInwardPlanMapper.selectInwardPlanToUpdate(planId);
     }
+
+    /**
+     * 承运商下拉
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getCarrierList() {
+        return amstruckInwardPlanMapper.getCarrierList();
+    }
+
+    /**
+     * 接收计划
+     * @param planId
+     * @return
+     */
+    @Override
+    public int receiveInwardPlan(BigDecimal planId) {
+        AmstruckInwardPlan amstruckInwardPlan = amstruckInwardPlanMapper.selectByPrimaryKey(planId);
+        amstruckInwardPlan.setPlanStatus(new BigDecimal(2));
+        int result = amstruckInwardPlanMapper.updateByPrimaryKeySelective(amstruckInwardPlan);
+        return result;
+    }
 }

+ 53 - 5
src/main/java/com/steerinfo/dil/service/impl/AmstruckInwardRequirementServiceImpl.java

@@ -1,13 +1,16 @@
 package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.mapper.AmstruckInwardRequirementMapper;
+import com.steerinfo.dil.mapper.AmstruckRequirementMaterialMapper;
 import com.steerinfo.dil.model.AmstruckInwardRequirement;
+import com.steerinfo.dil.model.AmstruckRequirementMaterial;
 import com.steerinfo.dil.service.IAmstruckInwardRequirementService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -34,25 +37,71 @@ public class AmstruckInwardRequirementServiceImpl extends BaseServiceImpl<Amstru
     @Autowired
     private AmstruckInwardRequirementMapper amstruckInwardRequirementMapper;
 
+    @Autowired
+    AmstruckRequirementMaterialMapper amstruckRequirementMaterialMapper;
+
     @Override
     protected IBaseMapper<AmstruckInwardRequirement, BigDecimal> getMapper() {
         return amstruckInwardRequirementMapper;
     }
 
-
+    @Transactional
     @Override
-    public int insert(AmstruckInwardRequirement amstruckInwardRequirement) {
+    public int  insert(Map<String,Object> mapValue) {
+        Integer purchaseOrderId = (Integer) mapValue.get("purchaseOrderId");
+        String requirementType = (String) mapValue.get("requirementType");
+        Integer capacityTypeId = (Integer) mapValue.get("capacityTypeId");
+        Date requirementTruckTime = new Date((Long) mapValue.get("requirementTruckTime"));
+        Integer requirementShipperId = (Integer) mapValue.get("requirementShipperId");
+        String requirementWorkType = (String) mapValue.get("requirementWorkType");
+        String requirementWorkContent = (String) mapValue.get("requirementWorkContent");
+        String requirementWorkEnvironment = (String) mapValue.get("requirementWorkEnvironment");
+        String requirementEstimatedDuration = (String) mapValue.get("requirementEstimatedDuration");
+        Integer requiremntUnitId = (Integer) mapValue.get("requiremntUnitId");
+        String requirementOverlimit = (String) mapValue.get("requirementOverlimit");
+        String materialWeight = (String) mapValue.get("materialWeight");
+        String materialCount = (String) mapValue.get("materialNumber");
+        AmstruckInwardRequirement amstruckInwardRequirement = new AmstruckInwardRequirement();
         //设置主键
-        amstruckInwardRequirement.setRequirementId(amstruckInwardRequirementMapper.selectOtherId());
+        BigDecimal requirementId = amstruckInwardRequirementMapper.selectOtherId();
+        amstruckInwardRequirement.setRequirementId(requirementId);
         DataChange dataChange=new DataChange();
         amstruckInwardRequirement.setRequirementNumber(dataChange.generateEightDigitsNumber("YSXQ",amstruckInwardRequirementMapper.selectOtherId().intValue()));
         amstruckInwardRequirement.setRequirementStatus(new BigDecimal(0));
+        amstruckInwardRequirement.setPurchaseOrderId(new BigDecimal(purchaseOrderId));
+        amstruckInwardRequirement.setRequirementType(requirementType);
+        amstruckInwardRequirement.setCapacityTypeId(new BigDecimal(capacityTypeId));
+        amstruckInwardRequirement.setRequirementTruckTime(requirementTruckTime);
+        amstruckInwardRequirement.setRequirementWorkType(new BigDecimal(requirementWorkType));
+        amstruckInwardRequirement.setRequirementWorkContent(requirementWorkContent);
+        amstruckInwardRequirement.setRequirementWorkEnvironment(requirementWorkEnvironment);
+        amstruckInwardRequirement.setRequirementEstimatedDuration(new BigDecimal(requirementEstimatedDuration));
+        amstruckInwardRequirement.setRequiremntUnitId(new BigDecimal(requiremntUnitId));
+        amstruckInwardRequirement.setRequirementOverlimit(requirementOverlimit);
+        amstruckInwardRequirement.setRequirementShipperId(new BigDecimal(requirementShipperId));
         // 设置常规字段
         amstruckInwardRequirement.setInsertTime(new Date());
         amstruckInwardRequirement.setInsertUsername("admin");
         amstruckInwardRequirement.setInsertUpdateRemark("无");
         amstruckInwardRequirement.setDeleted(new BigDecimal(0));
-        return amstruckInwardRequirementMapper.insertSelective(amstruckInwardRequirement);
+        int result = 0;
+        result += amstruckInwardRequirementMapper.insertSelective(amstruckInwardRequirement);
+        // 物资中间表
+        BigDecimal materialId = amstruckInwardRequirementMapper.getMaterialId(new BigDecimal(purchaseOrderId));
+        AmstruckRequirementMaterial amstruckRequirementMaterial = new AmstruckRequirementMaterial();
+        BigDecimal requirementMaterialId = amstruckRequirementMaterialMapper.selectRequirementMaterialId();
+        amstruckRequirementMaterial.setRequirementMaterialId(requirementMaterialId);
+        amstruckRequirementMaterial.setRequirementId(requirementId);
+        amstruckRequirementMaterial.setMaterialCount(new BigDecimal(materialCount));
+        amstruckRequirementMaterial.setMaterialWeight(new BigDecimal(materialWeight));
+        amstruckRequirementMaterial.setMaterialId(materialId);
+        amstruckRequirementMaterial.setInsertTime(new Date());
+        amstruckRequirementMaterial.setInsertUsername("admin");
+        amstruckRequirementMaterial.setInsertUpdateRemark("无");
+        amstruckRequirementMaterial.setUpdateTime(new Date());
+        amstruckRequirementMaterial.setUpdateUsername("admin");
+        result += amstruckRequirementMaterialMapper.insertSelective(amstruckRequirementMaterial);
+        return result;
     }
 
     /**
@@ -69,7 +118,6 @@ public class AmstruckInwardRequirementServiceImpl extends BaseServiceImpl<Amstru
         else {
             mapList = amstruckInwardRequirementMapper.getTruckRequirementList(mapValue);
         }
-
         return mapList;
     }
 

+ 254 - 48
src/main/resources/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.xml

@@ -14,16 +14,17 @@
         <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
         <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark"/>
         <result column="DELETED" jdbcType="DECIMAL" property="deleted"/>
+        <result column="PLAN_ISSUE_NAME" jdbcType="VARCHAR" property="planIssueName"/>
     </resultMap>
     <sql id="columns">
         PLAN_ID, PLAN_NUMBER, CARRIER_ID, PLAN_TRUCK_NUMBER, PLAN_STATUS, PLAN_ISSUE_TIME,
     INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
-    DELETED
+    DELETED, PLAN_ISSUE_NAME
     </sql>
     <sql id="columns_alias">
         t.PLAN_ID, t.PLAN_NUMBER, t.CARRIER_ID, t.PLAN_TRUCK_NUMBER, t.PLAN_STATUS, t.PLAN_ISSUE_TIME,
     t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK,
-    t.DELETED
+    t.DELETED, t.PLAN_ISSUE_NAME
     </sql>
     <sql id="select">
         SELECT
@@ -73,6 +74,9 @@
             <if test="deleted != null">
                 and DELETED = #{deleted}
             </if>
+            <if test="planIssueName != null and planIssueName != ''">
+                and PLAN_ISSUE_NAME = #{planIssueName}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -113,6 +117,9 @@
             <if test="deleted != null">
                 and DELETED = #{deleted}
             </if>
+            <if test="planIssueName != null and planIssueName != ''">
+                and PLAN_ISSUE_NAME LIKE '%${planIssueName}%'
+            </if>
         </where>
     </sql>
     <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -156,18 +163,23 @@
         <if test="deleted != null">
             or DELETED = #{deleted}
         </if>
+        <if test="planIssueName != null and planIssueName != ''">
+            or PLAN_ISSUE_NAME = #{planIssueName}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
         insert into AMSTRUCK_INWARD_PLAN (PLAN_ID, PLAN_NUMBER, CARRIER_ID,
                                           PLAN_TRUCK_NUMBER, PLAN_STATUS, PLAN_ISSUE_TIME,
                                           INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
-                                          UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED)
+                                          UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED,
+                                          PLAN_ISSUE_NAME)
         values (#{planId,jdbcType=DECIMAL}, #{planNumber,jdbcType=VARCHAR}, #{carrierId,jdbcType=DECIMAL},
                 #{planTruckNumber,jdbcType=DECIMAL}, #{planStatus,jdbcType=DECIMAL},
                 #{planIssueTime,jdbcType=TIMESTAMP},
                 #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
                 #{updateUsername,jdbcType=VARCHAR},
-                #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL})
+                #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL},
+                #{planIssueName,jdbcType=VARCHAR})
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
         insert into AMSTRUCK_INWARD_PLAN
@@ -208,6 +220,9 @@
             <if test="deleted != null">
                 DELETED,
             </if>
+            <if test="planIssueName != null">
+                PLAN_ISSUE_NAME,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="planId != null">
@@ -246,6 +261,9 @@
             <if test="deleted != null">
                 #{deleted,jdbcType=DECIMAL},
             </if>
+            <if test="planIssueName != null">
+                #{planIssueName,jdbcType=VARCHAR},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
@@ -260,7 +278,8 @@
             UPDATE_USERNAME      = #{updateUsername,jdbcType=VARCHAR},
             UPDATE_TIME          = #{updateTime,jdbcType=TIMESTAMP},
             INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
-            DELETED              = #{deleted,jdbcType=DECIMAL}
+            DELETED              = #{deleted,jdbcType=DECIMAL},
+            PLAN_ISSUE_NAME      = #{planIssueName,jdbcType=VARCHAR}
         where PLAN_ID = #{planId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
@@ -299,6 +318,9 @@
             <if test="deleted != null">
                 DELETED = #{deleted,jdbcType=DECIMAL},
             </if>
+            <if test="planIssueName != null">
+                PLAN_ISSUE_NAME = #{planIssueName,jdbcType=VARCHAR},
+            </if>
         </set>
         where PLAN_ID = #{planId,jdbcType=DECIMAL}
     </update>
@@ -321,7 +343,8 @@
         PLAN_STATUS, PLAN_ISSUE_TIME,
         INSERT_USERNAME, INSERT_TIME,
         UPDATE_USERNAME, UPDATE_TIME,
-        INSERT_UPDATE_REMARK, DELETED)
+        INSERT_UPDATE_REMARK, DELETED,
+        PLAN_ISSUE_NAME)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.planId,jdbcType=DECIMAL},
@@ -330,7 +353,8 @@
         #{item.planStatus,jdbcType=DECIMAL}, #{item.planIssueTime,jdbcType=TIMESTAMP},
         #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
         #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
-        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleted,jdbcType=DECIMAL} from dual
+        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleted,jdbcType=DECIMAL},
+        #{item.planIssueName,jdbcType=VARCHAR} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -384,6 +408,10 @@
         <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
             when #{item.planId,jdbcType=DECIMAL} then #{item.deleted,jdbcType=DECIMAL}
         </foreach>
+        ,PLAN_ISSUE_NAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planIssueName,jdbcType=VARCHAR}
+        </foreach>
         where PLAN_ID in
         <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
             #{item.planId,jdbcType=DECIMAL}
@@ -401,43 +429,46 @@
     <!-- 展示运输计划 -->
     <select id="getTruckPlanList" resultType="java.util.Map" parameterType="java.util.Map">
         SELECT *
-        FROM (SELECT APO.PURCHASE_ORDER_NO              AS "purchaseOrderNo",
-                     RM.MATERIAL_NAME                   AS "materialName",
-                     DB.RESULT_FOREIGN_SHIP_NAME        AS "resultForeignShipName",
-                     AIP.PLAN_NUMBER                    AS "planNumber",
-                     RCA.CARRIER_NAME                   AS "carrierName",
-                     AIP.PLAN_TRUCK_NUMBER              AS "planTruckNumber",
-                     AIR.REQUIREMENT_NUMBER             AS "requirementNumber",
-                     AIR.REQUIREMENT_TYPE               AS "requirementType",
-                     RCT.CAPACITY_TYPE_NAME             AS "capacityTypeName",
-                     ARM.MATERIAL_COUNT                 AS "materialNumber",
-                     AIR.REQUIREMENT_TRUCK_TIME         AS "requirementTruckTime",
-                     RW.WAREHOUSE_NAME                  AS "wareHouseName",
-                     AIR.REQUIREMENT_WORK_TYPE          AS "requirementWorkType",
-                     AIR.REQUIREMENT_WORK_CONTENT       AS "requirementWorkContent",
-                     AIR.REQUIREMENT_WORK_ENVIRONMENT   AS "requirementWorkEnvironment",
-                     AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
-                     AIP.PLAN_ID                        AS "planId",
-                     AIP.INSERT_TIME                    AS "insertTime"
-              FROM AMSTRUCK_INWARD_PLAN AIP
-                       LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
-                                 ON ARP.PLAN_ID = AIP.PLAN_ID
-                       LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
-                                 ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
-                       LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
-                                 ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
-                       LEFT JOIN AMS_PURCHASE_ORDER APO
-                                 ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
-                       LEFT JOIN DIL_BATCH DB
-                                 ON APO.BATCH_ID = DB.BATCH_ID
-                       LEFT JOIN RMS_MATERIAL RM
-                                 ON RM.MATERIAL_ID = DB.MATERIAL_ID
-                       LEFT JOIN RMS_WAREHOUSE RW
-                                 ON RW.WAREHOUSE_ID = AIR.REQUIREMNT_UNIT_ID
-                       LEFT JOIN RMS_CARRIER RCA
-                                 ON RCA.CARRIER_ID = AIP.CARRIER_ID
-                       LEFT JOIN RMS_CAPACITY_TYPE RCT
-                                 ON RCT.CAPACITY_TYPE_ID = AIR.CAPACITY_TYPE_ID)
+        FROM (SELECT APO.PURCHASE_ORDER_NO AS "purchaseOrderNo",
+        RM.MATERIAL_NAME AS "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME AS "resultForeignShipName",
+        AIP.PLAN_NUMBER AS "planNumber",
+        RCA.CARRIER_NAME AS "carrierName",
+        AIP.PLAN_TRUCK_NUMBER AS "planTruckNumber",
+        AIR.REQUIREMENT_NUMBER AS "requirementNumber",
+        AIR.REQUIREMENT_TYPE AS "requirementType",
+        RCT.CAPACITY_TYPE_NAME AS "capacityTypeName",
+        ARM.MATERIAL_COUNT AS "materialNumber",
+        AIR.REQUIREMENT_TRUCK_TIME AS "requirementTruckTime",
+        RW.WAREHOUSE_NAME AS "wareHouseName",
+        AIR.REQUIREMENT_WORK_TYPE AS "requirementWorkType",
+        AIR.REQUIREMENT_WORK_CONTENT AS "requirementWorkContent",
+        AIR.REQUIREMENT_WORK_ENVIRONMENT AS "requirementWorkEnvironment",
+        AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
+        AIP.PLAN_ID AS "planId",
+        AIP.INSERT_TIME AS "insertTime"
+        FROM AMSTRUCK_INWARD_PLAN AIP
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON ARP.PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+        ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON APO.BATCH_ID = DB.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = DB.MATERIAL_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = AIR.REQUIREMNT_UNIT_ID
+        LEFT JOIN RMS_CARRIER RCA
+        ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        LEFT JOIN RMS_CAPACITY_TYPE RCT
+        ON RCT.CAPACITY_TYPE_ID = AIR.CAPACITY_TYPE_ID
+        WHERE AIP.PLAN_STATUS = #{planStatus}
+        AND AIP.DELETED = 0
+        )
         <where>
             <if test="purchaseOrderNo != null">
                 and
@@ -539,6 +570,170 @@
         <include refid="orderBy"></include>
     </select>
 
+    <!-- 展示运输计划 -->
+    <select id="getIssuedPlanList" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT *
+        FROM (SELECT APO.PURCHASE_ORDER_NO AS "purchaseOrderNo",
+        RM.MATERIAL_NAME AS "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME AS "resultForeignShipName",
+        AIP.PLAN_NUMBER AS "planNumber",
+        RCA.CARRIER_NAME AS "carrierName",
+        AIP.PLAN_TRUCK_NUMBER AS "planTruckNumber",
+        AIR.REQUIREMENT_NUMBER AS "requirementNumber",
+        AIP.PLAN_ISSUE_TIME AS "planIssueTime",
+        AIP.PLAN_ISSUE_NAME AS "planIssueName",
+        AIR.REQUIREMENT_TYPE AS "requirementType",
+        RCT.CAPACITY_TYPE_NAME AS "capacityTypeName",
+        ARM.MATERIAL_COUNT AS "materialNumber",
+        AIR.REQUIREMENT_TRUCK_TIME AS "requirementTruckTime",
+        RW.WAREHOUSE_NAME AS "wareHouseName",
+        AIR.REQUIREMENT_WORK_TYPE AS "requirementWorkType",
+        AIR.REQUIREMENT_WORK_CONTENT AS "requirementWorkContent",
+        AIR.REQUIREMENT_WORK_ENVIRONMENT AS "requirementWorkEnvironment",
+        AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
+        AIP.PLAN_ID AS "planId",
+        AIP.INSERT_TIME AS "insertTime"
+        FROM AMSTRUCK_INWARD_PLAN AIP
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON ARP.PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+        ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON APO.BATCH_ID = DB.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = DB.MATERIAL_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = AIR.REQUIREMNT_UNIT_ID
+        LEFT JOIN RMS_CARRIER RCA
+        ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        LEFT JOIN RMS_CAPACITY_TYPE RCT
+        ON RCT.CAPACITY_TYPE_ID = AIR.CAPACITY_TYPE_ID
+        WHERE AIP.PLAN_STATUS = #{planStatus}
+        AND AIP.DELETED = 0
+        <if test="planId != null">
+            and AIP.PLAN_ID = #{planId}
+        </if>
+        <if test="carrierId != null">
+            and AIP.CARRIER_ID = #{carrierId}
+        </if>
+        )
+        <where>
+            <if test="purchaseOrderNo != null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialNumber != null">
+                and
+                <foreach collection="materialNumber" item="item" open="(" separator="or" close=")">
+                    "materialNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultForeignShipName != null">
+                and
+                <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
+                    "resultForeignShipName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementNumber != null">
+                and
+                <foreach collection="requirementNumber" item="item" open="(" separator="or" close=")">
+                    "requirementNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementType != null">
+                and
+                <foreach collection="requirementType" item="item" open="(" separator="or" close=")">
+                    "requirementType" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planIssueTime != null">
+                and
+                <foreach collection="planIssueTime" item="item" open="(" separator="or" close=")">
+                    "planIssueTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planIssueName != null">
+                and
+                <foreach collection="planIssueName" item="item" open="(" separator="or" close=")">
+                    "planIssueName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityTypeName != null">
+                and
+                <foreach collection="capacityTypeName" item="item" open="(" separator="or" close=")">
+                    "capacityTypeName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementTruckTime != null">
+                and
+                <foreach collection="requirementTruckTime" item="item" open="(" separator="or" close=")">
+                    "requirementTruckTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkType != null">
+                and
+                <foreach collection="requirementWorkType" item="item" open="(" separator="or" close=")">
+                    "requirementWorkType" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkContent != null">
+                and
+                <foreach collection="requirementWorkContent" item="item" open="(" separator="or" close=")">
+                    "requirementWorkContent" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkEnvironment != null">
+                and
+                <foreach collection="requirementWorkEnvironment" item="item" open="(" separator="or" close=")">
+                    "requirementWorkEnvironment" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementEstimatedDuration != null">
+                and
+                <foreach collection="requirementEstimatedDuration" item="item" open="(" separator="or" close=")">
+                    "requirementEstimatedDuration" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planNumber != null">
+                and
+                <foreach collection="planNumber" item="item" open="(" separator="or" close=")">
+                    "planNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="carrierName != null">
+                and
+                <foreach collection="carrierName" item="item" open="(" separator="or" close=")">
+                    "carrierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planTruckNumber != null">
+                and
+                <foreach collection="planTruckNumber" item="item" open="(" separator="or" close=")">
+                    "planTruckNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="wareHouseName != null">
+                and
+                <foreach collection="wareHouseName" item="item" open="(" separator="or" close=")">
+                    "wareHouseName" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+
     <sql id="orderBy">
         <if test="orderField != null and orderField != ''">
             order by "${orderField}"
@@ -552,11 +747,22 @@
     </sql>
 
     <select id="selectInwardPlanToUpdate" parameterType="DECIMAL" resultType="java.util.Map">
-        SELECT AIP.PLAN_NUMBER       AS "planNumber",
-               AIP.CARRIER_ID        AS "carrierId",
-               AIP.PLAN_TRUCK_NUMBER AS "planTruckNumber",
-               AIP.PLAN_STATUS       AS "planStatus"
+        SELECT AIP.CARRIER_ID         AS "carrierId",
+               AIP.PLAN_TRUCK_NUMBER  AS "planTruckNumber",
+               AIR.REQUIREMENT_NUMBER AS "requirementNumber",
+               AIP.PLAN_NUMBER        AS "planNumber"
         FROM AMSTRUCK_INWARD_PLAN AIP
+                 LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                           ON AIP.PLAN_ID = ARP.PLAN_ID
+                 LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                           ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
         WHERE AIP.PLAN_ID = #{planId}
     </select>
+
+    <select id="getCarrierList" resultType="java.util.Map">
+        SELECT RC.CARRIER_ID   AS "id",
+               RC.CARRIER_ID   AS "value",
+               RC.CARRIER_NAME AS "label"
+        FROM RMS_CARRIER RC
+    </select>
 </mapper>

+ 17 - 1
src/main/resources/com/steerinfo/dil/mapper/AmstruckInwardRequirementMapper.xml

@@ -803,7 +803,15 @@
         AIR.UPDATE_TIME AS "updateTime",
         AIR.UPDATE_USERNAME AS "updateUserName",
         RW.WAREHOUSE_NAME AS "wareHouseName"
-        FROM AMSTRUCK_INWARD_REQUIREMENT AIR
+        FROM (
+        SELECT AIR2.REQUIREMENT_ID
+        FROM AMSTRUCK_INWARD_REQUIREMENT AIR2
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON AIR2.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        WHERE ARP.PLAN_ID IS NULL
+        ) AIRP
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = AIRP.REQUIREMENT_ID
         LEFT JOIN AMS_PURCHASE_ORDER APO
         ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
         LEFT JOIN DIL_BATCH DB
@@ -1043,4 +1051,12 @@
                RW.WAREHOUSE_NAME AS "wareHouseName"
         FROM RMS_WAREHOUSE RW
     </select>
+
+    <select id="getMaterialId" parameterType="DECIMAL" resultType="DECIMAL">
+        SELECT DB.MATERIAL_ID AS "materialId"
+        FROM AMS_PURCHASE_ORDER APO
+                 LEFT JOIN DIL_BATCH DB
+                           ON DB.BATCH_ID = APO.BATCH_ID
+WHERE APO.PURCHASE_ORDER_ID = #{purchaseOrderId}
+    </select>
 </mapper>

+ 345 - 0
src/main/resources/com/steerinfo/dil/mapper/AmstruckRequirementMaterialMapper.xml

@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.steerinfo.dil.mapper.AmstruckRequirementMaterialMapper">
+  <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.AmstruckRequirementMaterial">
+    <id column="REQUIREMENT_MATERIAL_ID" jdbcType="DECIMAL" property="requirementMaterialId" />
+    <result column="REQUIREMENT_ID" jdbcType="DECIMAL" property="requirementId" />
+    <result column="MATERIAL_ID" jdbcType="DECIMAL" property="materialId" />
+    <result column="MATERIAL_WEIGHT" jdbcType="DECIMAL" property="materialWeight" />
+    <result column="MATERIAL_COUNT" jdbcType="DECIMAL" property="materialCount" />
+    <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+    <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+    <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
+    <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
+  </resultMap>
+  <sql id="columns">
+    REQUIREMENT_MATERIAL_ID, REQUIREMENT_ID, MATERIAL_ID, MATERIAL_WEIGHT, MATERIAL_COUNT, 
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK
+  </sql>
+  <sql id="columns_alias">
+    t.REQUIREMENT_MATERIAL_ID, t.REQUIREMENT_ID, t.MATERIAL_ID, t.MATERIAL_WEIGHT, t.MATERIAL_COUNT, 
+    t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK
+  </sql>
+  <sql id="select">
+    SELECT <include refid="columns" /> FROM AMSTRUCK_REQUIREMENT_MATERIAL
+  </sql>
+  <sql id="select_alias">
+    SELECT <include refid="columns_alias" /> FROM AMSTRUCK_REQUIREMENT_MATERIAL t
+  </sql>
+  <sql id="where">
+    <where> 
+      <if test="requirementMaterialId != null">
+        and REQUIREMENT_MATERIAL_ID = #{requirementMaterialId}
+      </if>
+      <if test="requirementId != null">
+        and REQUIREMENT_ID = #{requirementId}
+      </if>
+      <if test="materialId != null">
+        and MATERIAL_ID = #{materialId}
+      </if>
+      <if test="materialWeight != null">
+        and MATERIAL_WEIGHT = #{materialWeight}
+      </if>
+      <if test="materialCount != null">
+        and MATERIAL_COUNT = #{materialCount}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME = #{insertUsername}
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME = #{updateUsername}
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+      </if>
+    </where>
+  </sql>
+  <sql id="whereLike">
+    <where> 
+      <if test="requirementMaterialId != null">
+        and REQUIREMENT_MATERIAL_ID = #{requirementMaterialId}
+      </if>
+      <if test="requirementId != null">
+        and REQUIREMENT_ID = #{requirementId}
+      </if>
+      <if test="materialId != null">
+        and MATERIAL_ID = #{materialId}
+      </if>
+      <if test="materialWeight != null">
+        and MATERIAL_WEIGHT = #{materialWeight}
+      </if>
+      <if test="materialCount != null">
+        and MATERIAL_COUNT = #{materialCount}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        and INSERT_USERNAME LIKE '%${insertUsername}%'
+      </if>
+      <if test="insertTime != null">
+        and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        and UPDATE_USERNAME LIKE '%${updateUsername}%'
+      </if>
+      <if test="updateTime != null">
+        and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+      </if>
+    </where>
+  </sql>
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+    delete from AMSTRUCK_REQUIREMENT_MATERIAL
+    where REQUIREMENT_MATERIAL_ID = #{requirementMaterialId,jdbcType=DECIMAL}
+  </delete>
+  <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+    delete from AMSTRUCK_REQUIREMENT_MATERIAL
+    where 1!=1 
+      <if test="requirementId != null">
+        or REQUIREMENT_ID = #{requirementId}
+      </if>
+      <if test="materialId != null">
+        or MATERIAL_ID = #{materialId}
+      </if>
+      <if test="materialWeight != null">
+        or MATERIAL_WEIGHT = #{materialWeight}
+      </if>
+      <if test="materialCount != null">
+        or MATERIAL_COUNT = #{materialCount}
+      </if>
+      <if test="insertUsername != null and insertUsername != ''">
+        or INSERT_USERNAME = #{insertUsername}
+      </if>
+      <if test="insertTime != null">
+        or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+      </if>
+      <if test="updateUsername != null and updateUsername != ''">
+        or UPDATE_USERNAME = #{updateUsername}
+      </if>
+      <if test="updateTime != null">
+        or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+      </if>
+      <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+        or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+      </if>
+  </delete>
+  <insert id="insert" parameterType="com.steerinfo.dil.model.AmstruckRequirementMaterial">
+    insert into AMSTRUCK_REQUIREMENT_MATERIAL (REQUIREMENT_MATERIAL_ID, REQUIREMENT_ID, 
+      MATERIAL_ID, MATERIAL_WEIGHT, MATERIAL_COUNT, 
+      INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, 
+      UPDATE_TIME, INSERT_UPDATE_REMARK)
+    values (#{requirementMaterialId,jdbcType=DECIMAL}, #{requirementId,jdbcType=DECIMAL}, 
+      #{materialId,jdbcType=DECIMAL}, #{materialWeight,jdbcType=DECIMAL}, #{materialCount,jdbcType=DECIMAL}, 
+      #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmstruckRequirementMaterial">
+    insert into AMSTRUCK_REQUIREMENT_MATERIAL
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="requirementMaterialId != null">
+        REQUIREMENT_MATERIAL_ID,
+      </if>
+      <if test="requirementId != null">
+        REQUIREMENT_ID,
+      </if>
+      <if test="materialId != null">
+        MATERIAL_ID,
+      </if>
+      <if test="materialWeight != null">
+        MATERIAL_WEIGHT,
+      </if>
+      <if test="materialCount != null">
+        MATERIAL_COUNT,
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME,
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME,
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME,
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME,
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="requirementMaterialId != null">
+        #{requirementMaterialId,jdbcType=DECIMAL},
+      </if>
+      <if test="requirementId != null">
+        #{requirementId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialId != null">
+        #{materialId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialWeight != null">
+        #{materialWeight,jdbcType=DECIMAL},
+      </if>
+      <if test="materialCount != null">
+        #{materialCount,jdbcType=DECIMAL},
+      </if>
+      <if test="insertUsername != null">
+        #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmstruckRequirementMaterial">
+    update AMSTRUCK_REQUIREMENT_MATERIAL
+    set REQUIREMENT_ID = #{requirementId,jdbcType=DECIMAL},
+      MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
+      MATERIAL_WEIGHT = #{materialWeight,jdbcType=DECIMAL},
+      MATERIAL_COUNT = #{materialCount,jdbcType=DECIMAL},
+      INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+      UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+      INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR}
+    where REQUIREMENT_MATERIAL_ID = #{requirementMaterialId,jdbcType=DECIMAL}
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmstruckRequirementMaterial">
+    update AMSTRUCK_REQUIREMENT_MATERIAL
+    <set>
+      <if test="requirementId != null">
+        REQUIREMENT_ID = #{requirementId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialId != null">
+        MATERIAL_ID = #{materialId,jdbcType=DECIMAL},
+      </if>
+      <if test="materialWeight != null">
+        MATERIAL_WEIGHT = #{materialWeight,jdbcType=DECIMAL},
+      </if>
+      <if test="materialCount != null">
+        MATERIAL_COUNT = #{materialCount,jdbcType=DECIMAL},
+      </if>
+      <if test="insertUsername != null">
+        INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="insertTime != null">
+        INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateUsername != null">
+        UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="insertUpdateRemark != null">
+        INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where REQUIREMENT_MATERIAL_ID = #{requirementMaterialId,jdbcType=DECIMAL}
+  </update>
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+    <include refid="select" />
+    where REQUIREMENT_MATERIAL_ID = #{requirementMaterialId,jdbcType=DECIMAL}
+  </select>
+  <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select" />
+    <include refid="where" />
+  </select>
+  <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select" />
+    <include refid="whereLike" />
+  </select>
+  <insert id="batchInsert" parameterType="java.util.List">
+    insert into AMSTRUCK_REQUIREMENT_MATERIAL 
+      (REQUIREMENT_MATERIAL_ID, 
+      REQUIREMENT_ID, MATERIAL_ID, MATERIAL_WEIGHT, 
+      MATERIAL_COUNT, INSERT_USERNAME, 
+      INSERT_TIME, UPDATE_USERNAME, 
+      UPDATE_TIME, INSERT_UPDATE_REMARK
+      )
+    ( <foreach collection="list" item="item" separator="union all"> 
+   select  
+      #{item.requirementMaterialId,jdbcType=DECIMAL}, 
+      #{item.requirementId,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL}, #{item.materialWeight,jdbcType=DECIMAL}, 
+      #{item.materialCount,jdbcType=DECIMAL}, #{item.insertUsername,jdbcType=VARCHAR}, 
+      #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR}, 
+      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR}
+       from dual  
+   </foreach> )
+  </insert>
+  <update id="batchUpdate" parameterType="java.util.List">
+     update AMSTRUCK_REQUIREMENT_MATERIAL
+     set
+       REQUIREMENT_MATERIAL_ID=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.requirementMaterialId,jdbcType=DECIMAL}
+       </foreach>
+       ,REQUIREMENT_ID=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.requirementId,jdbcType=DECIMAL}
+       </foreach>
+       ,MATERIAL_ID=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.materialId,jdbcType=DECIMAL}
+       </foreach>
+       ,MATERIAL_WEIGHT=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.materialWeight,jdbcType=DECIMAL}
+       </foreach>
+       ,MATERIAL_COUNT=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.materialCount,jdbcType=DECIMAL}
+       </foreach>
+       ,INSERT_USERNAME=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+       </foreach>
+       ,INSERT_TIME=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,UPDATE_USERNAME=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+       </foreach>
+       ,UPDATE_TIME=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+       </foreach>
+       ,INSERT_UPDATE_REMARK=
+       <foreach close="end" collection="list" index="index" item="item" open="case REQUIREMENT_MATERIAL_ID" separator=" ">
+          when #{item.requirementMaterialId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+       </foreach>
+     where REQUIREMENT_MATERIAL_ID in 
+     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
+    #{item.requirementMaterialId,jdbcType=DECIMAL}
+     </foreach> 
+  </update>
+  <delete id="batchDelete" parameterType="java.util.List">
+    delete from AMSTRUCK_REQUIREMENT_MATERIAL
+    where REQUIREMENT_MATERIAL_ID in 
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
+      #{id}
+    </foreach>
+  </delete>
+  <!-- 友情提示!!!-->
+  <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  
+  
+</mapper>