Quellcode durchsuchen

审批系统代码

liujiankang vor 6 Jahren
Ursprung
Commit
6015c981cf

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

@@ -24,7 +24,7 @@ public class ApprovalProduction implements Serializable {
     private String productionPackingWay;//包装方式
     private String productionRemark;//备注信息
     private Date productionCreateTime;
-    private Date productionUpdateYime;
+    private Date productionUpdateTime;
 
     public Integer getApprovalId() {
         return approvalId;
@@ -146,11 +146,11 @@ public class ApprovalProduction implements Serializable {
         this.productionCreateTime = productionCreateTime;
     }
 
-    public Date getProductionUpdateYime() {
-        return productionUpdateYime;
+    public Date getProductionUpdateTime() {
+        return productionUpdateTime;
     }
 
-    public void setProductionUpdateYime(Date productionUpdateYime) {
-        this.productionUpdateYime = productionUpdateYime;
+    public void setProductionUpdateTime(Date productionUpdateTime) {
+        this.productionUpdateTime = productionUpdateTime;
     }
 }

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

@@ -1,6 +1,9 @@
 package com.iamberry.rst.faces.approval;
 
+import com.iamberry.rst.core.approval.*;
+
 import java.util.List;
+import java.util.Map;
 
 /**
  *  提货项信息接口
@@ -8,5 +11,34 @@ import java.util.List;
  * @Date 2018-09-19
  */
 public interface ApprovalOrderService {
-
+    /**
+     * 新增审批信息
+     * @return
+     */
+    Integer insertApprovalInfo(ApprovalInfo approvalInfo);
+    /**
+     * 新增生产审批信息
+     * @return
+     */
+    Boolean insertApprovalProduction(ApprovalProduction approvalProduction,String productionItems,Map<String, Object> tasknfo);
+    /**
+     * 新增生产审批信息产品
+     * @return
+     */
+    Integer insertItem(List<ApprovalProductionItem> listApprovalProductionItem);
+    /**
+     * 新增生产审批合同信息
+     * @return
+     */
+    Integer insertProductionContract(ApprovalProductionContract approvalProductionContract);
+    /**
+     * 新增流程信息
+     * @return
+     */
+    Integer insertProcessInfo(ProcessInfo processInfo);
+    /**
+     * 新增历史审批记录
+     * @return
+     */
+    Integer insertHistoricalRecord(HistoricalRecord historicalRecord);
 }

+ 108 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/ApprovalOrderServiceImpl.java

@@ -1,11 +1,17 @@
 package com.iamberry.rst.service.approval;
 
+import com.iamberry.rst.core.approval.*;
 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.wechat.tools.ResponseJson;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
+import java.util.*;
 
 /**
  *  提货项信息接口
@@ -14,5 +20,106 @@ import java.util.List;
  */
 @Service
 public class ApprovalOrderServiceImpl implements ApprovalOrderService {
+    @Autowired
+    private ApprovalOrderMapper approvalOrderMapper;
 
+
+    @Override
+    public Integer insertApprovalInfo(ApprovalInfo approvalInfo) {
+        return approvalOrderMapper.insertApprovalInfo(approvalInfo);
+    }
+
+    @Override
+    @Transactional
+    public Boolean insertApprovalProduction(ApprovalProduction approvalProduction,String productionItems,Map<String, Object> tasknfo) {
+
+        //添加审批信息
+        ApprovalInfo approvalInfo = new ApprovalInfo();
+        approvalInfo.setApprovalName("XXX的审批订单");
+        approvalInfo.setApprovalType(1);
+        approvalInfo.setApprovalStatus(1);
+        approvalInfo.setApprovalStatusDetails("待 "+tasknfo.get("users").toString()+"审批");
+        approvalInfo.setAdminId(null);
+        approvalInfo.setApprovalApplicant(approvalProduction.getApplicantName());
+        approvalInfo.setActivitiId(tasknfo.get("pid").toString());
+        approvalInfo.setApprovalDetails("html内容");
+        approvalInfo.setApprovalRemark(approvalProduction.getProductionRemark());
+        int returnValue = approvalOrderMapper.insertApprovalInfo(approvalInfo);
+        if(returnValue < 1){
+            throw new RuntimeException("添加审批信息失败");
+        }
+        //添加生产审批信息
+        approvalProduction.setApprovalId(approvalInfo.getApprovalId());
+        approvalProduction.setApplicantOrderNo("订单编号");
+        approvalProduction.setApplicantName("申请人姓名");
+        approvalProduction.setApplicantId(1);//申请人ID
+        approvalProduction.setProductionState(1);
+        int returnValue2 = approvalOrderMapper.insertApprovalProduction(approvalProduction);
+        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);
+        }
+        int returnValue3 = approvalOrderMapper.insertItem(listApprovalProductionItem);
+        if(returnValue3 < 1){
+            throw new RuntimeException("添加生产审批产品项信息失败");
+        }
+        //添加流程信息
+        ProcessInfo processInfo = new ProcessInfo();
+        processInfo.setAdminId(1);
+        processInfo.setApprovalId(approvalInfo.getApprovalId());
+        processInfo.setProcessDesc(approvalInfo.getApprovalDetails());
+        processInfo.setProcessState(1);
+        int returnValue4 = approvalOrderMapper.insertProcessInfo(processInfo);
+        if(returnValue4 < 1){
+            throw new RuntimeException("添加生产审批流程信息失败");
+        }
+        //添加审批历史记录
+        HistoricalRecord historicalRecord = new HistoricalRecord();
+        historicalRecord.setApprovalId(approvalInfo.getApprovalId());
+        historicalRecord.setAdminId(1);
+        historicalRecord.setRecordState(1);
+        historicalRecord.setTaskId(tasknfo.get("taskId").toString());
+        historicalRecord.setApprovalTime(new Date());
+        int returnValue5 = approvalOrderMapper.insertHistoricalRecord(historicalRecord);
+        if(returnValue5 < 1){
+            throw new RuntimeException("添加生产审批历史记录失败");
+        }
+        return true;
+    }
+
+    @Override
+    public Integer insertItem(List<ApprovalProductionItem> listApprovalProductionItem) {
+        return approvalOrderMapper.insertItem(listApprovalProductionItem);
+    }
+
+    @Override
+    public Integer insertProductionContract(ApprovalProductionContract approvalProductionContract) {
+        return approvalOrderMapper.insertProductionContract(approvalProductionContract);
+    }
+
+    @Override
+    public Integer insertProcessInfo(ProcessInfo processInfo) {
+        return approvalOrderMapper.insertProcessInfo(processInfo);
+    }
+
+    @Override
+    public Integer insertHistoricalRecord(HistoricalRecord historicalRecord) {
+        return approvalOrderMapper.insertHistoricalRecord(historicalRecord);
+    }
 }

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

@@ -1,6 +1,8 @@
 package com.iamberry.rst.service.approval.mapper;
 
 
+import com.iamberry.rst.core.approval.*;
+
 import java.util.List;
 
 /**
@@ -8,5 +10,35 @@ import java.util.List;
  */
 public interface ApprovalOrderMapper {
 
+    /**
+     * 新增审批信息
+     * @return
+     */
+     Integer insertApprovalInfo(ApprovalInfo approvalInfo);
+     /**
+     * 新增生产审批信息
+     * @return
+     */
+     Integer insertApprovalProduction(ApprovalProduction approvalProduction);
+     /**
+     * 新增生产审批信息产品
+     * @return
+     */
+     Integer insertItem(List<ApprovalProductionItem> listApprovalProductionItem);
+     /**
+     * 新增生产审批合同信息
+     * @return
+     */
+     Integer insertProductionContract(ApprovalProductionContract approvalProductionContract);
+     /**
+     * 新增流程信息
+     * @return
+     */
+     Integer insertProcessInfo(ProcessInfo processInfo);
+     /**
+     * 新增历史审批记录
+     * @return
+     */
+     Integer insertHistoricalRecord(HistoricalRecord historicalRecord);
 
 }

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

@@ -36,6 +36,194 @@
   </resultMap>
 
 
+  <resultMap id="ApprovalProductionItemMap" type="ApprovalProductionItem" >
+    <id column="item_id" property="itemId" jdbcType="INTEGER" />
+    <result column="production_id" property="productionId" jdbcType="INTEGER" />
+    <result column="product_id" property="productId" jdbcType="INTEGER" />
+    <result column="item_product_name" property="itemProductName" jdbcType="VARCHAR" />
+    <result column="item_color_name" property="itemColorName" jdbcType="VARCHAR" />
+    <result column="item_product_num" property="itemProductNum" jdbcType="INTEGER" />
+    <result column="item_brand_name" property="itemBrandName" jdbcType="VARCHAR" />
+    <result column="item_product_model" property="itemProductModel" jdbcType="VARCHAR" />
+    <result column="item_product_unit" property="itemProductUnit" jdbcType="VARCHAR" />
+    <result column="item_product_box_number" property="itemProductBoxNumber" jdbcType="INTEGER" />
+    <result column="item_create_time" property="itemCreateTime" jdbcType="TIMESTAMP" />
+    <result column="item_update_time" property="itemUpdateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+
+
+  <resultMap id="ApprovalProductionContractMap" type="ApprovalProductionContract" >
+    <id column="contract_id" property="contractId" jdbcType="INTEGER" />
+    <result column="production_id" property="productionId" jdbcType="INTEGER" />
+    <result column="contract_url" property="contractUrl" jdbcType="VARCHAR" />
+    <result column="contract_create_time" property="contractCreateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+
+
+  <resultMap id="ProcessInfoMap" type="ProcessInfo" >
+    <id column="process_id" property="processId" jdbcType="INTEGER" />
+    <result column="approval_id" property="approvalId" jdbcType="INTEGER" />
+    <result column="admin_id" property="adminId" jdbcType="INTEGER" />
+    <result column="process_desc" property="processDesc" jdbcType="VARCHAR" />
+    <result column="process_state" property="processState" jdbcType="INTEGER" />
+    <result column="process_create_time" property="processCreateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+
+
+  <resultMap id="ProcessInfoMap" type="ProcessInfo" >
+    <id column="record_id" property="recordId" jdbcType="INTEGER" />
+    <result column="approval_id" property="approvalId" jdbcType="INTEGER" />
+    <result column="admin_id" property="adminId" jdbcType="INTEGER" />
+    <result column="record_state" property="recordState" jdbcType="INTEGER" />
+    <result column="task_id" property="taskId" jdbcType="VARCHAR" />
+    <result column="approval_time" property="approvalTime" jdbcType="TIMESTAMP" />
+    <result column="record_create_time" property="recordCreateTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+
+
+
+  <insert id="insertApprovalInfo" parameterType="ApprovalInfo"  useGeneratedKeys="true" keyProperty="approvalId">
+    INSERT INTO tb_rst_approval_info(approval_id,approval_name,approval_type,approval_status,
+    approval_status_details,admin_id,approval_applicant,activiti_id,
+    approval_details,approval_remark,approval_create_time)
+    VALUES
+    (#{approvalId},#{approvalName},#{approvalType},#{approvalStatus},#{approvalStatusDetails}
+    ,#{adminId},#{approvalApplicant},#{activitiId},#{approvalDetails}
+    ,#{approvalRemark},NOW())
+  </insert>
+
+  <insert id="insertApprovalProduction" parameterType="ApprovalProduction"  useGeneratedKeys="true" keyProperty="productionId">
+    INSERT INTO tb_rst_approval_production(
+          production_id,
+          approval_id,
+          applicant_order_no,
+          applicant_name,
+          applicant_id,
+          order_name,
+          company_name,
+          contact_name,
+          contact_tel,
+          production_delivery_date,
+          production_delivery_way,
+          production_delivery_desc,
+          production_state,
+          production_packing_way,
+          production_remark,
+          production_create_time
+          )
+    VALUES
+    (#{approvalId},#{approvalId},#{applicantOrderNo},#{applicantName},#{applicantId}
+    ,#{orderName},#{companyName},#{contactName},#{contactTel,#{productionDeliveryDate
+    ,#{productionDeliveryWay},#{productionDeliveryDesc},#{productionState},#{productionPackingWay}
+    ,#{productionRemark},NOW())
+  </insert>
+
+  <!-- 批量添加订单项数据-->
+  <insert id="insertItem" parameterType="ArrayList">
+    INSERT INTO tb_rst_approval_production_item
+    (
+    production_id,
+    product_id,
+    item_product_name,
+    item_color_name,
+    item_product_num,
+    item_brand_name,
+    item_product_model,
+    item_product_unit,
+    item_product_box_number,
+    item_create_time,
+    )
+    VALUES
+    <foreach collection="list" item="item" separator=",">
+      (
+      #{item.productionId},#{item.productId},#{item.itemProductName},#{item.itemColorName},
+      #{item.itemProductNum},#{item.itemBrandName},#{item.itemProductModel},#{item.itemProductUnit}
+      ,#{item.itemProductBoxNumber},NOW()
+      )
+    </foreach>
+  </insert>
+
+
+  <insert id="insertProductionContract" parameterType="ApprovalProductionContract">
+    INSERT INTO tb_rst_approval_production_contract(
+    contract_id
+    production_id
+    contract_url
+    contract_create_time
+    )
+    VALUES
+    (#{contractId},#{productionId},#{contractUrl},NOW())
+  </insert>
+
+  <insert id="insertProcessInfo" parameterType="ProcessInfo">
+    INSERT INTO tb_rst_process_info(
+    approval_id
+    admin_id
+    process_desc
+    process_state
+    process_create_time
+    )
+    VALUES
+    (#{approvalId},#{adminId},#{processDesc},#{processState},NOW())
+  </insert>
+
+  <insert id="insertHistoricalRecord" parameterType="HistoricalRecord">
+    INSERT INTO tb_rst_historical_record(
+    approval_id
+    admin_id
+    record_state
+    task_id
+    approval_time
+    record_create_time
+    )
+    VALUES
+    (#{approvalId},#{adminId},#{processDesc},#{processState},NOW())
+  </insert>
+
+
+  <!-- 修改流程信息状态-->
+  <update id="updateProcessInfo" parameterType="ProcessInfo">
+    update tb_rst_process_info
+    <set >
+      <if test="processState != null" >
+        process_state = #{processState}
+      </if>
+    </set>
+    <where>
+      <if test="approvalId != null and approvalId != ''">
+        approval_id = #{approvalId}
+      </if>
+      <if test="processId != null and processId != ''">
+        AND  process_id = #{processId}
+      </if>
+      <if test="adminId != null and adminId != ''">
+        AND  admin_id = #{adminId}
+      </if>
+    </where>
+  </update>
+  <!-- 修改历史记录状态-->
+  <update id="updateHistoricalRecord" parameterType="HistoricalRecord">
+    update tb_rst_historical_record
+    <set >
+      <if test="recordState != null" >
+        record_state = #{recordState},
+      </if>
+      <if test="approvalTime != null" >
+        approval_time = #{approvalTime}
+      </if>
+    </set>
+    <where>
+      <if test="recordId != null and recordId != ''">
+        record_id = #{recordId}
+      </if>
+      <if test="approvalId != null and approvalId != ''">
+        AND  approval_id = #{approvalId}
+      </if>
+      <if test="taskId != null and taskId != ''">
+        AND  task_id = #{taskId}
+      </if>
+    </where>
+  </update>
 
  <!-- <resultMap id="BaseResultMap" type="ApprovalOrderInfo" >
     <id column="approval_id" property="approvalId" jdbcType="INTEGER" />
@@ -74,17 +262,6 @@
     record_id,approval_name,admin_id,approval_id,record_state,approval_time,approval_desc,record_create_time,record_update_time
   </sql>
 
-<insert id="insert" parameterType="ApprovalOrderInfo"  useGeneratedKeys="true" keyProperty="approvalId">
-    INSERT INTO tb_rst_approval_order(approval_id,applicant_name,applicant_id,order_name,
-    company_name,contact_name,contact_tel,delivery_time,
-    delivery_way,contract_name,contract_img,attachment_img,
-    approval_state,current_admin_id,approval_desc,approval_create_time)
-    VALUES
-    (#{approvalId},(#{applicantName},#{applicantId},#{orderName},#{companyName}
-    ,#{contactName},#{contactTel},#{deliveryTime},#{deliveryWay}
-    ,#{contractName},#{contractImg},#{attachmentImg},#{approvalState}
-    ,#{currentAdminId},#{approvalDesc},NOW())
-</insert>
   &lt;!&ndash; 批量添加订单项数据 &ndash;&gt;
   <insert id="insertItem" parameterType="ArrayList">
     INSERT INTO tb_rst_approval_order_item

+ 40 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApprovalController.java

@@ -0,0 +1,40 @@
+package com.iamberry.rst.controllers.approval;
+
+import com.iamberry.rst.core.approval.ApprovalInfo;
+import com.iamberry.rst.core.approval.ApprovalProduction;
+import com.iamberry.rst.faces.approval.ApprovalOrderService;
+import com.iamberry.rst.faces.approval.ApprovalTaskService;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/10/9.
+ */
+public class ApprovalController {
+    private ApprovalOrderService approvalOrderService;
+    @Autowired
+    private ApprovalTaskService approvalTaskService;
+    /**
+     * 新增审批信息
+     * @param request
+     * @param approvalProduction
+     * @param productionItems
+     * @return
+     */
+    public ResponseJson addApproval(HttpServletRequest request,ApprovalProduction approvalProduction,String productionItems){
+        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);
+        if(!returnValue){
+            return  ResponseJson.getFAILURE();
+        }
+        return rj;
+    }
+}