liujiankang преди 6 години
родител
ревизия
d778a0cfec

+ 90 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalApplyPick.java

@@ -1,11 +1,13 @@
 package com.iamberry.rst.core.approval;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Created by Administrator on 2018/9/29.
  */
 public class ApprovalApplyPick implements Serializable{
+    private static final long serialVersionUID = -2650565647759079562L;
     private Integer applyPickId;//
     private Integer approvalId;//审批订单信息id
     private Integer adminId;//申请人id
@@ -16,5 +18,93 @@ public class ApprovalApplyPick implements Serializable{
     private Integer applyPickRemk;//备注信息
     private Integer applyPickCreateTime;//
     private Integer applyPickUpdateTime;//
+    private List<ApprovalApplyPickItem> listApplyPickItem;//产品项集合
 
+    public Integer getApplyPickId() {
+        return applyPickId;
+    }
+
+    public void setApplyPickId(Integer applyPickId) {
+        this.applyPickId = applyPickId;
+    }
+
+    public Integer getApprovalId() {
+        return approvalId;
+    }
+
+    public void setApprovalId(Integer approvalId) {
+        this.approvalId = approvalId;
+    }
+
+    public Integer getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(Integer adminId) {
+        this.adminId = adminId;
+    }
+
+    public Integer getApplyPickName() {
+        return applyPickName;
+    }
+
+    public void setApplyPickName(Integer applyPickName) {
+        this.applyPickName = applyPickName;
+    }
+
+    public Integer getApplyPickTel() {
+        return applyPickTel;
+    }
+
+    public void setApplyPickTel(Integer applyPickTel) {
+        this.applyPickTel = applyPickTel;
+    }
+
+    public Integer getApplyPickReason() {
+        return applyPickReason;
+    }
+
+    public void setApplyPickReason(Integer applyPickReason) {
+        this.applyPickReason = applyPickReason;
+    }
+
+    public Integer getApplyPickStruts() {
+        return applyPickStruts;
+    }
+
+    public void setApplyPickStruts(Integer applyPickStruts) {
+        this.applyPickStruts = applyPickStruts;
+    }
+
+    public Integer getApplyPickRemk() {
+        return applyPickRemk;
+    }
+
+    public void setApplyPickRemk(Integer applyPickRemk) {
+        this.applyPickRemk = applyPickRemk;
+    }
+
+    public Integer getApplyPickCreateTime() {
+        return applyPickCreateTime;
+    }
+
+    public void setApplyPickCreateTime(Integer applyPickCreateTime) {
+        this.applyPickCreateTime = applyPickCreateTime;
+    }
+
+    public Integer getApplyPickUpdateTime() {
+        return applyPickUpdateTime;
+    }
+
+    public void setApplyPickUpdateTime(Integer applyPickUpdateTime) {
+        this.applyPickUpdateTime = applyPickUpdateTime;
+    }
+
+    public List<ApprovalApplyPickItem> getListApplyPickItem() {
+        return listApplyPickItem;
+    }
+
+    public void setListApplyPickItem(List<ApprovalApplyPickItem> listApplyPickItem) {
+        this.listApplyPickItem = listApplyPickItem;
+    }
 }

+ 28 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalInfo.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.core.approval;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 1.9.1	审批信息
@@ -20,6 +21,9 @@ public class ApprovalInfo implements Serializable{
     private String approvalDetails;//审批内容
     private String approvalRemark;//备注信息
     private Date approvalCreateTime;//申请时间
+    private ApprovalProduction approvalProduction;//生产审批集合
+    private ApprovalApplyPick approvalApplyPick;//提货申请集合
+    private List<ApprovalProductionContract> listProductionContract;//审批合同集合
 
     public Integer getApprovalId() {
         return approvalId;
@@ -108,4 +112,28 @@ public class ApprovalInfo implements Serializable{
     public void setApprovalCreateTime(Date approvalCreateTime) {
         this.approvalCreateTime = approvalCreateTime;
     }
+
+    public List<ApprovalProductionContract> getListProductionContract() {
+        return listProductionContract;
+    }
+
+    public void setListProductionContract(List<ApprovalProductionContract> listProductionContract) {
+        this.listProductionContract = listProductionContract;
+    }
+
+    public ApprovalProduction getApprovalProduction() {
+        return approvalProduction;
+    }
+
+    public void setApprovalProduction(ApprovalProduction approvalProduction) {
+        this.approvalProduction = approvalProduction;
+    }
+
+    public ApprovalApplyPick getApprovalApplyPick() {
+        return approvalApplyPick;
+    }
+
+    public void setApprovalApplyPick(ApprovalApplyPick approvalApplyPick) {
+        this.approvalApplyPick = approvalApplyPick;
+    }
 }

+ 19 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalProduction.java

@@ -2,12 +2,14 @@ package com.iamberry.rst.core.approval;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 1.9.2	生产审批信息表
  * Created by Administrator on 2018/9/28.
  */
 public class ApprovalProduction implements Serializable {
+    private static final long serialVersionUID = -899265869408828769L;
     private Integer productionId;//
     private Integer approvalId;//所属审批
     private String applicantOrderNo;//订单编号*系统自动生成;了解生产规则
@@ -25,6 +27,15 @@ public class ApprovalProduction implements Serializable {
     private String productionRemark;//备注信息
     private Date productionCreateTime;
     private Date productionUpdateTime;
+    private List<ApprovalProductionItem> listProductionItem;//产品项
+
+    public Integer getProductionId() {
+        return productionId;
+    }
+
+    public void setProductionId(Integer productionId) {
+        this.productionId = productionId;
+    }
 
     public Integer getApprovalId() {
         return approvalId;
@@ -153,4 +164,12 @@ public class ApprovalProduction implements Serializable {
     public void setProductionUpdateTime(Date productionUpdateTime) {
         this.productionUpdateTime = productionUpdateTime;
     }
+
+    public List<ApprovalProductionItem> getListProductionItem() {
+        return listProductionItem;
+    }
+
+    public void setListProductionItem(List<ApprovalProductionItem> listProductionItem) {
+        this.listProductionItem = listProductionItem;
+    }
 }

+ 18 - 8
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalProductionContract.java

@@ -10,8 +10,9 @@ import java.util.Date;
 public class ApprovalProductionContract implements Serializable {
     private static final long serialVersionUID = -6409909802307248086L;
     private Integer contractId;//
-    private Integer productionId;//生产id
+    private Integer approvalId;//审批id
     private String contractUrl;//url
+    private String contractName;//合同名称
     private Date contractCreateTime;
 
     public Integer getContractId() {
@@ -22,13 +23,6 @@ public class ApprovalProductionContract implements Serializable {
         this.contractId = contractId;
     }
 
-    public Integer getProductionId() {
-        return productionId;
-    }
-
-    public void setProductionId(Integer productionId) {
-        this.productionId = productionId;
-    }
 
     public String getContractUrl() {
         return contractUrl;
@@ -45,4 +39,20 @@ public class ApprovalProductionContract implements Serializable {
     public void setContractCreateTime(Date contractCreateTime) {
         this.contractCreateTime = contractCreateTime;
     }
+
+    public Integer getApprovalId() {
+        return approvalId;
+    }
+
+    public void setApprovalId(Integer approvalId) {
+        this.approvalId = approvalId;
+    }
+
+    public String getContractName() {
+        return contractName;
+    }
+
+    public void setContractName(String contractName) {
+        this.contractName = contractName;
+    }
 }

+ 28 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/approval/ApprovalOrderService.java

@@ -1,6 +1,8 @@
 package com.iamberry.rst.faces.approval;
 
 import com.iamberry.rst.core.approval.*;
+import com.iamberry.rst.core.cm.CustomerInfo;
+import com.iamberry.rst.core.page.PagedResult;
 
 import java.util.List;
 import java.util.Map;
@@ -20,7 +22,7 @@ public interface ApprovalOrderService {
      * 新增生产审批信息
      * @return
      */
-    Boolean insertApprovalProduction(ApprovalProduction approvalProduction,String productionItems,Map<String, Object> tasknfo);
+    Boolean insertApprovalProduction(ApprovalProduction approvalProduction,List<ApprovalProductionItem> listApprovalProductionItem, List<ApprovalProductionContract> productionContracts,Map<String, Object> tasknfo);
     /**
      * 新增生产审批信息产品
      * @return
@@ -41,4 +43,29 @@ public interface ApprovalOrderService {
      * @return
      */
     Integer insertHistoricalRecord(HistoricalRecord historicalRecord);
+    /**
+     * 查询审批信息列表
+     * @return
+     */
+    PagedResult<ApprovalInfo> listApprovalInfo(int pageNO, int pageSize, ApprovalInfo approvalInfo, boolean isTotalNum);
+    /**
+     * 修改历史记录审核状态
+     * @return
+     */
+    Integer updateHistoricalRecord(HistoricalRecord historicalRecord);
+    /**
+     * 查询单个审核历史记录
+     * @return
+     */
+    HistoricalRecord getHistoricalRecord(HistoricalRecord historicalRecord);
+    /**
+     * 查询审核历史记录
+     * @return
+     */
+    List<ProcessInfo> listProcessInfo(ProcessInfo processInfo);
+    /**
+     * 修改审批信息
+     * @return
+     */
+    Integer updateApprovalInfo(ApprovalInfo approvalInfo);
 }

+ 42 - 17
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/ApprovalOrderServiceImpl.java

@@ -1,9 +1,13 @@
 package com.iamberry.rst.service.approval;
 
+import com.github.pagehelper.PageHelper;
 import com.iamberry.rst.core.approval.*;
+import com.iamberry.rst.core.cm.CustomerInfo;
+import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.approval.ApprovalOrderService;
 import com.iamberry.rst.faces.approval.ApprovalTaskService;
 import com.iamberry.rst.service.approval.mapper.ApprovalOrderMapper;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -31,7 +35,10 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
 
     @Override
     @Transactional
-    public Boolean insertApprovalProduction(ApprovalProduction approvalProduction,String productionItems,Map<String, Object> tasknfo) {
+    public Boolean insertApprovalProduction(ApprovalProduction approvalProduction,
+                                            List<ApprovalProductionItem> listApprovalProductionItem,
+                                            List<ApprovalProductionContract> productionContracts,
+                                            Map<String, Object> tasknfo) {
 
         //添加审批信息
         ApprovalInfo approvalInfo = new ApprovalInfo();
@@ -58,23 +65,13 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
         if(returnValue2 < 1){
             throw new RuntimeException("添加生产审批信息失败");
         }
-        //添加生产审批产品项
-        List<ApprovalProductionItem> listApprovalProductionItem = new ArrayList<ApprovalProductionItem>();
-        JSONArray jsonProductionItems = JSONArray.fromObject(productionItems);
-        for (int i = 0; i < jsonProductionItems.size(); i++) {
-            JSONObject orderItem = jsonProductionItems.getJSONObject(i);
-            //添加产品项内容
-            ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem();
-            approvalProductionItem.setItemBrandName(orderItem.getString("itemBrandName"));
-            approvalProductionItem.setProductId(orderItem.getInt("productId"));
-            approvalProductionItem.setItemProductName(orderItem.getString("itemProductName"));
-            approvalProductionItem.setItemColorName(orderItem.getString("itemColorName"));
-            approvalProductionItem.setItemProductNum(orderItem.getInt("itemProductNum"));
-            approvalProductionItem.setItemProductModel(orderItem.getString("itemProductModel"));
-            approvalProductionItem.setItemProductUnit(orderItem.getString("itemProductUnit"));
-            approvalProductionItem.setItemProductBoxNumber(orderItem.getInt("itemProductBoxNumber"));
-            listApprovalProductionItem.add(approvalProductionItem);
+        //添加合同信息
+        for(ApprovalProductionContract approvalProductionContract : productionContracts){
+            approvalProductionContract.setApprovalId(approvalProduction.getProductionId());
+            approvalProductionContract.setContractName("XXX的审批订单合同");
+            approvalOrderMapper.insertProductionContract(approvalProductionContract);
         }
+        //封装生产审批产品项
         int returnValue3 = approvalOrderMapper.insertItem(listApprovalProductionItem);
         if(returnValue3 < 1){
             throw new RuntimeException("添加生产审批产品项信息失败");
@@ -122,4 +119,32 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
     public Integer insertHistoricalRecord(HistoricalRecord historicalRecord) {
         return approvalOrderMapper.insertHistoricalRecord(historicalRecord);
     }
+
+    @Override
+    public PagedResult<ApprovalInfo> listApprovalInfo(int pageNO, int pageSize, ApprovalInfo approvalInfo, boolean isTotalNum) {
+        PageHelper.startPage(pageNO, pageSize, isTotalNum);
+        //查询客诉列表
+        List<ApprovalInfo> approvalList = approvalOrderMapper.listApprovalInfo(approvalInfo);
+        return PageUtil.getPage(approvalList);
+    }
+
+    @Override
+    public Integer updateHistoricalRecord(HistoricalRecord historicalRecord) {
+        return approvalOrderMapper.updateHistoricalRecord(historicalRecord);
+    }
+
+    @Override
+    public HistoricalRecord getHistoricalRecord(HistoricalRecord historicalRecord) {
+        return approvalOrderMapper.getHistoricalRecord(historicalRecord);
+    }
+
+    @Override
+    public List<ProcessInfo> listProcessInfo(ProcessInfo processInfo) {
+        return approvalOrderMapper.listProcessInfo(processInfo);
+    }
+
+    @Override
+    public Integer updateApprovalInfo(ApprovalInfo approvalInfo) {
+        return approvalOrderMapper.updateApprovalInfo(approvalInfo);
+    }
 }

+ 25 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/mapper/ApprovalOrderMapper.java

@@ -40,5 +40,30 @@ public interface ApprovalOrderMapper {
      * @return
      */
      Integer insertHistoricalRecord(HistoricalRecord historicalRecord);
+     /**
+     * 查询审批信息列表
+     * @return
+     */
+     List<ApprovalInfo> listApprovalInfo(ApprovalInfo approvalInfo);
+     /**
+     * 修改历史记录审核状态
+     * @return
+     */
+     Integer updateHistoricalRecord(HistoricalRecord historicalRecord);
+     /**
+     * 查询单个审核历史记录
+     * @return
+     */
+     HistoricalRecord getHistoricalRecord(HistoricalRecord historicalRecord);
+     /**
+     * 查询审核历史记录
+     * @return
+     */
+     List<ProcessInfo> listProcessInfo(ProcessInfo processInfo);
+     /**
+      * 修改审批信息
+      * @return
+      */
+     Integer updateApprovalInfo(ApprovalInfo approvalInfo);
 
 }

+ 236 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/mapper/approvalOrderMapper.xml

@@ -14,7 +14,11 @@
     <result column="approval_details" property="approvalDetails" jdbcType="VARCHAR" />
     <result column="approval_remark" property="approvalRemark" jdbcType="VARCHAR" />
     <result column="approval_create_time" property="approvalCreateTime" jdbcType="TIMESTAMP" />
+    <collection property="approvalProduction" column="approval_id" ofType="ApprovalProduction" select="getApprovalProduction"/>
+    <collection property="approvalApplyPick" column="approval_id" ofType="ApprovalApplyPick" select="getApplyPick"/>
+    <collection property="listProductionContract" column="approval_id" ofType="ApprovalProductionContract" select="listProductionContract"/>
   </resultMap>
+
   <resultMap id="ApprovalProductionResultMap" type="ApprovalProduction" >
     <id column="production_id" property="productionId" jdbcType="INTEGER" />
     <result column="approval_id" property="approvalId" jdbcType="VARCHAR" />
@@ -33,6 +37,21 @@
     <result column="production_remark" property="productionRemark" jdbcType="VARCHAR" />
     <result column="production_create_time" property="productionCreateTime" jdbcType="TIMESTAMP" />
     <result column="production_update_time" property="productionUpdateTime" jdbcType="TIMESTAMP" />
+    <collection property="listProductionItem" column="production_id" ofType="ApprovalProductionItem" select="listProductionItem"/>
+  </resultMap>
+
+  <resultMap id="ApprovalApplyPickMap" type="ApprovalApplyPick" >
+    <id column="apply_pick_id" property="applyPickId" jdbcType="INTEGER" />
+    <result column="approval_id" property="approvalId" jdbcType="INTEGER" />
+    <result column="admin_id" property="adminId" jdbcType="INTEGER" />
+    <result column="apply_pick_name" property="applyPickName" jdbcType="VARCHAR" />
+    <result column="apply_pick_tel" property="applyPickTel" jdbcType="VARCHAR" />
+    <result column="apply_pick_reason" property="applyPickReason" jdbcType="VARCHAR" />
+    <result column="apply_pick_struts" property="applyPickStruts" jdbcType="INTEGER" />
+    <result column="apply_pick_remk" property="applyPickRemk" jdbcType="VARCHAR" />
+    <result column="apply_pick_create_time" property="applyPickCreateTime" jdbcType="TIMESTAMP" />
+    <result column="apply_pick_update_time" property="applyPickUpdateTime" jdbcType="TIMESTAMP" />
+    <collection property="listApplyPickItem" column="apply_pick_id" ofType="ApprovalApplyPickItem" select="listApplyPickItem"/>
   </resultMap>
 
 
@@ -54,8 +73,9 @@
 
   <resultMap id="ApprovalProductionContractMap" type="ApprovalProductionContract" >
     <id column="contract_id" property="contractId" jdbcType="INTEGER" />
-    <result column="production_id" property="productionId" jdbcType="INTEGER" />
+    <result column="approval_id" property="approvalId" jdbcType="INTEGER" />
     <result column="contract_url" property="contractUrl" jdbcType="VARCHAR" />
+    <result column="contract_name" property="contractName" jdbcType="VARCHAR" />
     <result column="contract_create_time" property="contractCreateTime" jdbcType="TIMESTAMP" />
   </resultMap>
 
@@ -149,10 +169,11 @@
     contract_id
     production_id
     contract_url
+    contract_type
     contract_create_time
     )
     VALUES
-    (#{contractId},#{productionId},#{contractUrl},NOW())
+    (#{contractId},#{productionId},#{contractUrl},#{contractType},NOW())
   </insert>
 
   <insert id="insertProcessInfo" parameterType="ProcessInfo">
@@ -225,6 +246,219 @@
     </where>
   </update>
 
+
+<!--查询审批信息列表-->
+  <select id="listApprovalInfo" parameterType="ApprovalInfo" resultMap="ApprovalInfoResultMap">
+    SELECT
+    ai.approval_id
+    ai.approval_name
+    ai.approval_type
+    ai.approval_status
+    ai.approval_status_details
+    ai.admin_id
+    ai.approval_applicant
+    ai.activiti_id
+    ai.approval_details
+    ai.approval_remark
+    ai.approval_create_time
+    from tb_rst_approval_info ai
+    LEFT JOIN  tb_rst_historical_record hr ON ai.approval_id = hr.approval_id
+    <where>
+      <if test="adminId != null and adminId != ''">
+        ai.admin_id = #{adminId}
+      </if>
+      <if test="approvalType != null and approvalType != ''">
+        ai.approval_type = #{approvalType}
+      </if>
+      <if test="approvalStatus != null and approvalStatus != ''">
+        ai.approval_status = #{approvalStatus}
+      </if>
+      <if test="adminId != null and adminId != ''">
+        hr.admin_id = #{adminId}
+      </if>
+    </where>
+  </select>
+
+  <!--查询生产审批信息-->
+  <select id="getApprovalProduction" parameterType="Integer" resultMap="ApprovalProductionResultMap">
+    SELECT
+    ap.production_id,
+    ap.approval_id,
+    ap.applicant_order_no,
+    ap.applicant_name,
+    ap.applicant_id,
+    ap.order_name,
+    ap.company_name,
+    ap.contact_name,
+    ap.contact_tel,
+    ap.production_delivery_date,
+    ap.production_delivery_way,
+    ap.production_delivery_desc,
+    ap.production_state,
+    ap.production_packing_way,
+    ap.production_remark,
+    ap.production_create_time,
+    ap.production_update_time
+    from tb_rst_approval_production ap
+    where
+        ap.approval_id = #{approvalId}
+  </select>
+
+
+  <!--查询提货申请信息-->
+  <select id="getApplyPick" parameterType="ApprovalApplyPick" resultMap="ApprovalApplyPickMap">
+    SELECT
+    aap.apply_pick_id,
+    aap.approval_id,
+    aap.admin_id,
+    aap.apply_pick_name,
+    aap.apply_pick_tel,
+    aap.apply_pick_reason,
+    aap.apply_pick_struts,
+    aap.apply_pick_remk,
+    aap.apply_pick_create_time,
+    aap.apply_pick_update_time
+    from tb_rst_approval_apply_pick aap
+    where
+        aap.approval_id = #{approvalId}
+  </select>
+
+
+  <!--查询提货产品项信息-->
+  <select id="listProductionItem" parameterType="Integer" resultType="ApprovalProductionItem">
+    SELECT
+    api.item_id itemId,
+    api.production_id productionId,
+    api.product_id productId,
+    api.item_product_name itemProductName,
+    api.item_color_name itemColorName,
+    api.item_product_num itemProductNum,
+    api.item_brand_name itemBrandName,
+    api.item_product_model itemProductModel,
+    api.item_product_unit itemProductUnit,
+    api.item_product_box_number itemProductBoxNumber,
+    api.item_create_time itemCreateTime,
+    api.item_update_time itemUpdateTime
+    from tb_rst_approval_production_item api
+    where
+        api.production_id = #{productionId}
+  </select>
+
+
+  <!--查询提货产品项信息-->
+  <select id="listApplyPickItem" parameterType="Integer" resultType="ApprovalApplyPickItem">
+    SELECT
+    aapi.apply_item_id applyItemId,
+    aapi.apply_pick_id applyPickId,
+    aapi.product_id productId,
+    aapi.item_product_name itemProductName,
+    aapi.item_color_name itemColorName,
+    aapi.item_product_num itemProductNum,
+    aapi.item_brand_name itemBrandName,
+    aapi.item_product_model itemProductModel,
+    aapi.item_product_unit itemProductUnit,
+    aapi.item_product_box_number itemProductBoxNumber,
+    aapi.item_create_time itemCreateTime,
+    aapi.item_update_time itemUpdateTime
+    from tb_rst_approval_apply_pick_item aapi
+    where
+        aapi.apply_pick_id = #{applyPickId}
+  </select>
+
+  <!--查询审批合同信息-->
+  <select id="listProductionContract" parameterType="Integer" resultType="ApprovalProductionContract">
+    SELECT
+    apc.contract_id contractId,
+    apc.approval_id approvalId,
+    apc.contract_url contractUrl,
+    apc.contract_name contractName,
+    apc.contract_create_time contractCreateTime
+    from tb_rst_approval_production_contract apc
+    where
+        apc.approval_id = #{approvalId}
+  </select>
+
+
+  <select id="getHistoricalRecord" parameterType="HistoricalRecord" resultType="HistoricalRecord">
+    SELECT
+    hr.record_id recordId,
+    hr.approval_id approvalId,
+    hr.admin_id adminId,
+    hr.record_state recordState,
+    hr.task_id taskId,
+    hr.approval_time approvalTime,
+    hr.record_create_time recordCreateTime
+    from tb_rst_historical_record hr
+    <where>
+      <if test="adminId != null and adminId != ''">
+        hr.admin_id = #{adminId}
+      </if>
+      <if test="approvalId != null and approvalId != ''">
+        hr.approval_id = #{approvalId}
+      </if>
+    </where>
+  </select>
+
+  <select id="getHistoricalRecord" parameterType="HistoricalRecord" resultType="HistoricalRecord">
+    SELECT
+    hr.record_id recordId,
+    hr.approval_id approvalId,
+    hr.admin_id adminId,
+    hr.record_state recordState,
+    hr.task_id taskId,
+    hr.approval_time approvalTime,
+    hr.record_create_time recordCreateTime
+    from tb_rst_historical_record hr
+    <where>
+      <if test="adminId != null and adminId != ''">
+        hr.admin_id = #{adminId}
+      </if>
+      <if test="approvalId != null and approvalId != ''">
+        hr.approval_id = #{approvalId}
+      </if>
+    </where>
+  </select>
+
+  <select id="listProcessInfo" parameterType="ProcessInfo" resultType="ProcessInfo">
+    SELECT
+    process_id processId,
+    approval_id approvalId,
+    admin_id adminId,
+    process_desc processDesc,
+    process_state processState,
+    process_create_time processCreateTime
+    from tb_rst_process_info
+    <where>
+      <if test="approvalId != null and approvalId != ''">
+        approval_id = #{approvalId}
+      </if>
+      <if test="adminId != null and adminId != ''">
+        admin_id = #{adminId}
+      </if>
+    </where>
+  </select>
+
+
+  <!-- 修改审批信息-->
+  <update id="updateApprovalInfo" parameterType="ApprovalInfo">
+    update tb_rst_approval_info
+    <set >
+      <if test="approvalStatus != null" >
+        approval_status = #{approvalStatus},
+      </if>
+      <if test="approvalStatusDetails != null" >
+        approval_status_details = #{approvalStatusDetails}
+      </if>
+      <if test="approvalDetails != null" >
+        approval_details = #{approvalDetails}
+      </if>
+    </set>
+    <where>
+      <if test="approvalId != null and approvalId != ''">
+        approval_id = #{approvalId}
+      </if>
+    </where>
+  </update>
  <!-- <resultMap id="BaseResultMap" type="ApprovalOrderInfo" >
     <id column="approval_id" property="approvalId" jdbcType="INTEGER" />
     <result column="applicant_name" property="applicantName" jdbcType="VARCHAR" />

+ 176 - 4
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApprovalController.java

@@ -1,13 +1,28 @@
 package com.iamberry.rst.controllers.approval;
 
-import com.iamberry.rst.core.approval.ApprovalInfo;
-import com.iamberry.rst.core.approval.ApprovalProduction;
+import com.iamberry.rst.core.approval.*;
+import com.iamberry.rst.core.page.PageRequest;
+import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.approval.ApprovalOrderService;
 import com.iamberry.rst.faces.approval.ApprovalTaskService;
 import com.iamberry.wechat.tools.ResponseJson;
+import com.iamberry.wechat.tools.ResultInfo;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.context.ContextLoader;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
+import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,17 +39,174 @@ public class ApprovalController {
      * @param productionItems
      * @return
      */
-    public ResponseJson addApproval(HttpServletRequest request,ApprovalProduction approvalProduction,String productionItems){
+    public ResponseJson addApproval(HttpServletRequest request, ApprovalProduction approvalProduction, String productionItems,String productionContracts){
         ResponseJson rj =new ResponseJson(200, "添加成功", 200);
         if (approvalProduction == null || productionItems == null) {
             return  ResponseJson.getFAILURE();
         }
         //获取审批任务id
         Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(1);
-        boolean returnValue = approvalOrderService.insertApprovalProduction(approvalProduction,productionItems,taskinfo);
+
+        //封装生产审批产品项
+        List<ApprovalProductionItem> listApprovalProductionItem = new ArrayList<ApprovalProductionItem>();
+        JSONArray jsonProductionItems = JSONArray.fromObject(productionItems);
+        for (int i = 0; i < jsonProductionItems.size(); i++) {
+            JSONObject orderItem = jsonProductionItems.getJSONObject(i);
+            //添加产品项内容
+            ApprovalProductionItem approvalProductionItem = new ApprovalProductionItem();
+            approvalProductionItem.setItemBrandName(orderItem.getString("itemBrandName"));
+            approvalProductionItem.setProductId(orderItem.getInt("productId"));
+            approvalProductionItem.setItemProductName(orderItem.getString("itemProductName"));
+            approvalProductionItem.setItemColorName(orderItem.getString("itemColorName"));
+            approvalProductionItem.setItemProductNum(orderItem.getInt("itemProductNum"));
+            approvalProductionItem.setItemProductModel(orderItem.getString("itemProductModel"));
+            approvalProductionItem.setItemProductUnit(orderItem.getString("itemProductUnit"));
+            approvalProductionItem.setItemProductBoxNumber(orderItem.getInt("itemProductBoxNumber"));
+            listApprovalProductionItem.add(approvalProductionItem);
+        }
+        //封装生产审批合同
+        List<ApprovalProductionContract> listProductionContract = new ArrayList<ApprovalProductionContract>();
+        JSONArray jsonproductionContracts = JSONArray.fromObject(productionContracts);
+        for (int i = 0; i < jsonProductionItems.size(); i++) {
+            JSONObject contract = jsonproductionContracts.getJSONObject(i);
+            ApprovalProductionContract contractInfo = new ApprovalProductionContract();
+            contractInfo.setContractUrl(contract.getString("contractUrl"));
+            listProductionContract.add(contractInfo);
+        }
+
+        boolean returnValue = approvalOrderService.insertApprovalProduction(approvalProduction,listApprovalProductionItem,listProductionContract,taskinfo);
         if(!returnValue){
             return  ResponseJson.getFAILURE();
         }
         return rj;
     }
+
+
+    /**
+     * 上传合同图片
+     * 通过流的方式上传文件
+     * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象
+     */
+    @ResponseBody
+    @RequestMapping("/fileUpload")
+    public ResponseJson  fileUpload(HttpServletRequest request,@RequestParam("file") CommonsMultipartFile file) throws IOException {
+        ResponseJson responseJson = new ResponseJson();
+        System.out.println("fileName:"+file.getOriginalFilename());
+        //获取项目根目录
+        WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
+        ServletContext servletContext = webApplicationContext.getServletContext();
+        String realPath = servletContext.getRealPath(ResultInfo.CONTRACT_IMAGE);
+        String imgUrl = new Date().getTime()+file.getOriginalFilename();
+        try {
+            //获取输出流
+            OutputStream os=new FileOutputStream(realPath+imgUrl);
+
+            //获取输入流 CommonsMultipartFile 中可以直接得到文件的流
+            InputStream is=file.getInputStream();
+            byte[] bts = new byte[1024];
+            //一个一个字节的读取并写入
+            while(is.read(bts)!=-1)
+            {
+                os.write(bts);
+            }
+            os.flush();
+            os.close();
+            is.close();
+
+        } catch (FileNotFoundException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        responseJson.setReturnCode(200);
+        responseJson.addResponseKeyValue("imgUrl",ResultInfo.CONTRACT_IMAGE+imgUrl);
+        return responseJson;
+    }
+
+/**
+ *  查询待审批/我发起的 列表
+ * @param approvalInfo
+ * @param pageSize
+ * @param pageNO
+ * @param totalNum
+ * @return
+ * @throws Exception
+ */
+    @ResponseBody
+    @RequestMapping(value = "/approvalInfoList")
+    public ResponseJson listApprovalInfo(
+            ApprovalInfo approvalInfo,
+            @RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
+            @RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
+            @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "查询成功", 200);
+
+        PagedResult<ApprovalInfo> pagedResult = approvalOrderService.listApprovalInfo(pageNO, pageSize,approvalInfo,totalNum == null);
+        if (totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+        }
+        List<ApprovalInfo> approvalList = pagedResult.getDataList();
+        rj.addResponseKeyValue("approvalList",approvalList);
+        return rj;
+    }
+
+    /**
+     * 修改审批状态 (1 通过 2驳回 3撤销 4评论)
+     * @param
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping(value = "/updateApprovalInfo")
+    public ResponseJson updateApprovalInfo(
+            ApprovalInfo approvalInfo,Integer status) throws Exception {
+        ResponseJson rj =new ResponseJson(200, "操作成功", 200);
+        if(status == null){
+            return  ResponseJson.getFAILURE();
+        }
+        HistoricalRecord historicalRecord = new HistoricalRecord();
+        historicalRecord.setApprovalId(approvalInfo.getApprovalId());
+        historicalRecord.setAdminId(1);
+        switch (status){
+            case 1:
+
+                //查询当前审核人当前审核任务信息
+                HistoricalRecord record = approvalOrderService.getHistoricalRecord(historicalRecord);
+                if(record == null){
+                    return  ResponseJson.getFAILURE();
+                }
+                //修改审核历史记录状态为已通过
+                historicalRecord.setRecordState(2);
+                if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
+                    return  ResponseJson.getFAILURE();
+                }
+                //获取下一个审核人,并添加审核历史信息
+                Map<String, Object> taskMap = approvalTaskService.completeTask(approvalInfo.getActivitiId(),record.getTaskId());
+                if(taskMap == null){
+                    return  ResponseJson.getFAILURE();
+                }
+                if(taskMap.get("status") == 1){//没有下一个审批人,修改审批任务状态为已审批通过
+
+                }else if(taskMap.get("status") == 0){//还有下一个审批人,需要增加审批历史记录
+
+                }
+                break;
+            case 2:
+                //修改状态为已驳回
+                historicalRecord.setRecordState(3);
+                if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
+                    return  ResponseJson.getFAILURE();
+                }
+                ApprovalInfo approvalinfo = new ApprovalInfo();
+                approvalinfo.setApprovalId(approvalInfo.getApprovalId());
+                approvalinfo.setApprovalStatus(3);
+                if(approvalOrderService.updateApprovalInfo(approvalinfo) < 1){
+                    return  ResponseJson.getFAILURE();
+                }
+                //添加流程信息记录
+
+                break;
+        }
+        return rj;
+    }
+
 }

+ 9 - 6
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -115,12 +115,15 @@
 		<typeAlias type="com.iamberry.rst.core.cm.WarehouseInfo" alias="WarehouseInfo"/>
 		<typeAlias type="com.iamberry.rst.core.cm.FactoryInfo" alias="FactoryInfo"/>
 		<!-- 审批实体类 -->
-		<!--<typeAlias type="com.iamberry.rst.core.approval.ApprovalOrderInfo" alias="ApprovalOrderInfo"/>
-		<typeAlias type="com.iamberry.rst.core.approval.ApprovalOrderItem" alias="ApprovalOrderItem"/>
-		<typeAlias type="com.iamberry.rst.core.approval.ApprovalPeople" alias="ApprovalPeople"/>
-		<typeAlias type="com.iamberry.rst.core.approval.ApprovalRecord" alias="ApprovalRecord"/>
-		<typeAlias type="com.iamberry.rst.core.approval.ApplyPick" alias="ApplyPick"/>
-		<typeAlias type="com.iamberry.rst.core.approval.ApplyPickItem" alias="ApplyPickItem"/>-->
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalApplyPick" alias="ApprovalApplyPick"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalApplyPickItem" alias="ApprovalApplyPickItem"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalInfo" alias="ApprovalInfo"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalInventoryRecords" alias="ApprovalInventoryRecords"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalProduction" alias="ApprovalProduction"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalProductionContract" alias="ApprovalProductionContract"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ApprovalProductionItem" alias="ApprovalProductionItem"/>
+		<typeAlias type="com.iamberry.rst.core.approval.HistoricalRecord" alias="HistoricalRecord"/>
+		<typeAlias type="com.iamberry.rst.core.approval.ProcessInfo" alias="ProcessInfo"/>
 	</typeAliases>
 	<!-- PageHelper -->
 	<plugins>

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/pts/machine/machine_print_List.ftl

@@ -34,7 +34,7 @@
         </div>
         <input class="my-input" type="hidden" id="machineIsPrint" name="machineIsPrint" />
         <input  class="my-input" type="text" value="每个二维码打印数量:" readonly="readonly" style="border: 0;margin-top: 8px;margin-right: 0"/>
-        <input class="my-input" type="text" id="settingNumber" name="printNumber" value="3" placeholder="打印数量" style="margin-top: 10px;"/>
+        <input class="my-input" type="text" id="settingNumber" name="printNumber" value="1" placeholder="打印数量" style="margin-top: 10px;"/>
         <button type="button" class="my-btn-search" onclick="printList();" style="cursor:pointer; margin-right: 50px;margin-top: 10px;">打印</button>
         <button id="updatePrintId" type="button" class="my-btn-search" onclick="batchUpdatePring();" style="cursor:pointer; margin-right: 50px;margin-top: 10px;">修改为已打印</button>
     </form>