liujiankang 6 年 前
コミット
9d1f200200

+ 13 - 0
watero-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -92,6 +92,12 @@ public class ResultInfo {
 	 * 上传审批合同图片保存路径
 	 */
 	public static String CONTRACT_IMAGE = "/common/images/contractimages/";
+
+
+	/**
+	 * 服务器根目录路径
+	 */
+	public static String SERVICE_IMAGE = "w.iamberry.com";
 	/**
 	 * 上传EXCEl保存路径
 	 */
@@ -235,6 +241,13 @@ public class ResultInfo {
 	public static String APPLICATIONDELIVERYNOTIFICATION = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'keyword3':{'color':'#173177','value':'keyword3Value'},'keyword4':{'color':'#173177','value':'keyword4Value'},'remark':{'color':'#FF0000','value':'remarkValue'}}";
 	/** 	申请单出库通知 	*/
 	public static String DELIVERYAPPLICATIONFORM = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'keyword3':{'color':'#173177','value':'keyword3Value'},'remark':{'color':'#FF0000','value':'remarkValue'}}";
+	/** 	我审核列表url 	*/
+	public static String LISTBEREVIEWED = "http://static.iamberry.com/rst/approval/pro_order_list_index.html?type=2";
+	/** 	我发起列表url 	*/
+	public static String LISTISTARTED = "http://static.iamberry.com/rst/approval/pro_order_list_index.html?type=1";
+	/** 	仓库列表url 	*/
+	public static String LISTWAREHOUSE = "http://static.iamberry.com/rst/approval/pro_order_list_index.html?type=3";
+
 
 	/** 	RST模板消息 end 	*/
 

+ 3 - 3
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalProductionItem.java

@@ -19,9 +19,9 @@ public class ApprovalProductionItem implements Serializable{
     private String itemProductModel;//产品型号
     private String itemProductUnit;//单位
     private Integer itemProductBoxNumber;//箱数/套数
-    private Integer itemActualStorage;//本次应入库数量
-    private Integer itemShouldStorage;//实际入库数量
-    private Integer itemLackNumber;//入库后缺少数量
+    private Integer itemActualStorage;//实际入库数量
+    private Integer itemShouldStorage;//入库数量
+    private Integer itemLackNumber;//缺少数量
     private Date itemCreateTime;
     private Date itemUpdateTime;
 

+ 1 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/HistoricalRecord.java

@@ -12,7 +12,7 @@ public class HistoricalRecord implements Serializable {
     private Integer recordId;//
     private Integer approvalId;//审批订单id
     private Integer adminId;//审批人id
-    private Integer recordState;//审核状态1:待审核2:审核通过3:驳回申请
+    private Integer recordState;//审核状态1:待审核2:审核通过3:驳回申请4:部分入库5:已入库
     private String taskId;//activiti任务id
     private Date approvalTime;//审核时间
     private Date recordCreateTime;//

+ 1 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/sys/Admin.java

@@ -22,7 +22,7 @@ public class Admin implements Serializable {
 
     private Integer adminId;
 
-    private Integer adminDept;              // 1:技术组 2:销售组(销售部) 3:客服组(客服运营部) 4:运营组 5:财务部  6工厂生产部 7.管理部
+    private Integer adminDept;              // 1:技术组 2:销售组(销售部) 3:客服组(客服运营部) 4:运营组 5:财务部  6工厂生产部 7.管理部8工厂仓库部
 
     @NotBlank(message="姓名不能为空")
     @Length(min=2,max=10,message="姓名必须由2~10个字组成")

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

@@ -3,6 +3,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 com.iamberry.rst.core.sys.Admin;
+import com.iamberry.wechat.tools.ResponseJson;
 
 import java.util.List;
 import java.util.Map;
@@ -97,7 +99,7 @@ public interface ApprovalOrderService {
      * 修改审批订单项
      * @return
      */
-    Integer insertInventoryRecords(ApprovalInventoryRecords approvalInventoryRecords);
+    ResponseJson insertInventoryRecords(String inventoryRecordss,Admin admin);
     /**
      * 查询单个审批订单项
      * @return
@@ -114,4 +116,9 @@ public interface ApprovalOrderService {
      * @return
      */
     List<ApprovalProductionItem> getIteminfo(Integer approvalId);
+    /**
+     * 修改审批信息
+     * @return
+     */
+    ResponseJson auditApprovalinfo(ApprovalInfo approvalInfo, Admin admin, Integer status);
 }

+ 7 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/sys/SysService.java

@@ -123,4 +123,11 @@ public interface SysService {
      * @return
      */
     Admin getAdminInfo(Admin admin);
+
+    /**
+     * 管理员集合
+     * @param admin
+     * @return
+     */
+    List<Admin> listAdminInfo(Admin admin);
 }

+ 398 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/ApprovalOrderServiceImpl.java

@@ -7,11 +7,13 @@ import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.approval.ApprovalOrderService;
 import com.iamberry.rst.faces.approval.ApprovalTaskService;
+import com.iamberry.rst.service.approval.mapper.ApplyPickMapper;
 import com.iamberry.rst.service.approval.mapper.ApprovalOrderMapper;
 import com.iamberry.rst.service.sys.mapper.SysMapper;
 import com.iamberry.rst.util.PageUtil;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.tools.ResponseJson;
+import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.SendMessageUtil;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -33,6 +35,10 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
     private ApprovalOrderMapper approvalOrderMapper;
     @Autowired
     private SysMapper sysMapper;
+    @Autowired
+    private ApprovalTaskService approvalTaskService;
+    @Autowired
+    private ApplyPickMapper applyPickMapper;
 
 
 
@@ -127,7 +133,7 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
                 throw new RuntimeException("添加历史审批信息失败"+tasknfo);
             }
             //修改审核信息表
-            info.setApprovalStatusDetails("待"+name+"审批");
+            info.setApprovalStatusDetails("待"+approvalAdmin.getAdminName()+"审批");
             if(approvalOrderMapper.updateApprovalInfo(info) < 1){
                 throw new RuntimeException("修改审批信息失败"+tasknfo);
             }
@@ -141,7 +147,7 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
                     approvalInfo.getApprovalName(),
                     "点击查看详细信息",
                     approvalAdmin.getAdminOpenId(),
-                    "url");
+                    ResultInfo.LISTBEREVIEWED);
 
         }
         return true;
@@ -216,8 +222,119 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
     }
 
     @Override
-    public Integer insertInventoryRecords(ApprovalInventoryRecords approvalInventoryRecords) {
-        return approvalOrderMapper.insertInventoryRecords(approvalInventoryRecords);
+    @Transactional
+    public ResponseJson insertInventoryRecords(String inventoryRecordss,Admin admin) {
+        ResponseJson rj =new ResponseJson(200, "入库成功", 200);
+        Integer appvalId = 0;
+        Integer productNum = 0;
+        String productName = "";
+        Integer isPutStorage = 2; //·1部分入库 2.全部入库
+        JSONArray jsonRecordss = JSONArray.fromObject(inventoryRecordss);
+        for (int i = 0; i < jsonRecordss.size(); i++) {
+            JSONObject jsonRecords = jsonRecordss.getJSONObject(i);
+            //封装入库信息
+            //根据itemid查询产品项
+            ApprovalProductionItem productionItem = approvalOrderMapper.getProductionItem(jsonRecords.getInt("itemId"));
+            if((productionItem.getItemLackNumber() > jsonRecords.getInt("actualStorage") ? 1 : 2) == 1){
+                isPutStorage = 1;
+            }
+            ApprovalInventoryRecords records = new ApprovalInventoryRecords();
+            if(jsonRecords.get("actualStorage") == null){
+                if(productionItem.getItemLackNumber() < jsonRecords.getInt("actualStorage")){
+                    return new ResponseJson(200, "实际入库数量不得大于缺少数量", 500);
+                }
+            }
+            records.setStorageState(productionItem.getItemLackNumber() > jsonRecords.getInt("actualStorage") ? 1 : 2);
+            records.setApprovalId(jsonRecords.getInt("approvalId"));
+            records.setProductName(productionItem.getItemProductName());
+            records.setColorName(productionItem.getItemColorName());
+            records.setActualStorage(jsonRecords.getInt("actualStorage"));
+            records.setShouldStorage(productionItem.getItemLackNumber());
+            records.setLackNumber(productionItem.getItemLackNumber() - jsonRecords.getInt("actualStorage"));
+            records.setOperatingAdminId(admin.getAdminId());
+            if(approvalOrderMapper.insertInventoryRecords(records) < 1){
+                return new ResponseJson(200, "添加入库记录失败", 500);
+            }
+            //修改订单项信息
+            if(jsonRecords.get("itemId") == null || jsonRecords.get("itemId").equals("")){
+                return new ResponseJson(200, "产品项id不能为空", 500);
+            }
+
+            /*ApprovalProductionItem productionItem = approvalOrderService.getProductionItem(jsonRecords.getInt("itemId"));*/
+            if(productionItem.getItemLackNumber() < jsonRecords.getInt("actualStorage")){
+                return new ResponseJson(200, "产品入库数量不得大于缺少数量", 500);
+            }
+            /*productionItem.setItemShouldStorage(productionItem.getItemLackNumber());*/
+            productionItem.setItemLackNumber(productionItem.getItemLackNumber() - jsonRecords.getInt("actualStorage"));
+            productionItem.setItemActualStorage(productionItem.getItemActualStorage()+jsonRecords.getInt("actualStorage"));
+            if(approvalOrderMapper.updateProductionItem(productionItem) < 1){
+                return new ResponseJson(200, "修改审批产品项失败", 500);
+            }
+            appvalId = jsonRecords.getInt("approvalId");
+            productNum = productNum + jsonRecords.getInt("actualStorage");
+            productName = productName + productionItem.getItemProductName()+",";
+
+
+        }
+        //修改审批订单状态
+        ApprovalInfo approvalinfo = new ApprovalInfo();
+        approvalinfo.setApprovalId(appvalId);
+        if(isPutStorage == 1){
+            approvalinfo.setApprovalStatus(6);
+            approvalinfo.setApprovalStatusDetails("已完成部分入库");
+        }else{
+            approvalinfo.setApprovalStatus(7);
+            approvalinfo.setApprovalStatusDetails("全部入库,待发货");
+        }
+        if(approvalOrderMapper.updateApprovalInfo(approvalinfo) < 1){
+            return new ResponseJson(200, "修改审批信息状态失败", 500);
+        }
+
+        //添加历史入库信息
+        HistoricalRecord historicalRecord = new HistoricalRecord();
+        historicalRecord.setApprovalTime(new Date());
+        historicalRecord.setAdminId(admin.getAdminId());
+        historicalRecord.setApprovalId(appvalId);
+        if(isPutStorage == 1){
+            historicalRecord.setRecordState(4);
+        }else{
+            historicalRecord.setRecordState(5);
+        }
+        if(approvalOrderMapper.insertHistoricalRecord(historicalRecord) < 1){
+            return new ResponseJson(200, "添加审批历史信息失败", 500);
+        }
+        //添加审批流程信息
+        //流程信息封装
+        ProcessInfo processInfo = new ProcessInfo();
+        processInfo.setAdminId(admin.getAdminId());
+        processInfo.setApprovalId(appvalId);
+        if(isPutStorage == 1){
+            processInfo.setProcessState(5);
+        }else{
+            processInfo.setProcessState(6);
+        }
+        processInfo.setRecordId(historicalRecord.getRecordId() == null ? null : historicalRecord.getRecordId());
+        processInfo.setProcessDesc("本次入库:"+productNum+"台");
+        if(approvalOrderMapper.insertProcessInfo(processInfo) < 1){
+            return new ResponseJson(200, "添加审批流程信息失败", 500);
+        }
+        //推送入库微信模板消息通知
+        //查询审批订单信息
+        ApprovalInfo approvalInfo = approvalOrderMapper.getApprovalInfoById(appvalId);
+        SendMessageUtil sendMessageUtil = new SendMessageUtil();
+        productName = productName.substring(0,productName.length() - 1);
+        Admin adminTwo = new Admin();
+        adminTwo.setAdminDept(8);//工厂仓库部
+        List<Admin> listAdmin = sysMapper.listAdmin(adminTwo);
+        sendMessageUtil.putStoragePush(approvalInfo.getApprovalName()+"已入库,本次入口总数量"+productNum+"台",
+                productName,
+                ""+productNum,
+                admin.getAdminName(),
+                "优尼雅仓库",
+                "如有疑问请联系上级领导人",
+                listAdmin.get(0).getAdminOpenId(),
+                ResultInfo.LISTWAREHOUSE);
+        return rj;
     }
 
     @Override
@@ -234,4 +351,281 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
     public List<ApprovalProductionItem> getIteminfo(Integer approvalId) {
         return approvalOrderMapper.getIteminfo(approvalId);
     }
+
+    @Override
+    @Transactional
+    public ResponseJson auditApprovalinfo(ApprovalInfo approvalInfo, Admin admin,Integer status) {
+        ResponseJson rj =new ResponseJson(200, "操作成功", 200);
+        ApprovalInfo ainfo = approvalOrderMapper.getApprovalInfoById(approvalInfo.getApprovalId());
+
+        approvalInfo.setApprovalName(ainfo.getApprovalName());
+        approvalInfo.setApprovalType(ainfo.getApprovalType());
+        approvalInfo.setActivitiId(ainfo.getActivitiId());
+        approvalInfo.setApprovalApplicant(ainfo.getApprovalApplicant());
+        //审批历史记录查询和封装
+        HistoricalRecord historicalRecord = new HistoricalRecord();
+        historicalRecord.setApprovalId(approvalInfo.getApprovalId());
+        historicalRecord.setAdminId(admin.getAdminId());
+        historicalRecord.setRecordState(1);
+        historicalRecord = approvalOrderMapper.getHistoricalRecord(historicalRecord);
+        if(status != 3){
+            if(historicalRecord == null){
+                return new ResponseJson(200, "未查询到审批历史记录信息", 500);
+            }else{
+                historicalRecord.setApprovalTime(new Date());
+            }
+        }
+        //流程信息封装
+        ProcessInfo processInfo = new ProcessInfo();
+        processInfo.setAdminId(admin.getAdminId());
+        processInfo.setApprovalId(approvalInfo.getApprovalId());
+        if(status != 3){
+            processInfo.setRecordId(historicalRecord.getRecordId() == null ? null : historicalRecord.getRecordId());
+        }
+        processInfo.setProcessDesc(approvalInfo.getApprovalDetails());//后期在后台添加
+        //审批信息封装
+        ApprovalInfo info = new ApprovalInfo();
+        info.setApprovalId(ainfo.getApprovalId());
+        info.setApprovalType(ainfo.getApprovalType());
+        info.setApprovalName(ainfo.getApprovalName());
+        switch (status){
+            case 1:
+                //查询当前审核人当前审核任务信息
+                HistoricalRecord record = approvalOrderMapper.getHistoricalRecord(historicalRecord);
+                if(record == null){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("查询当前审核人审核任务信息为空!");
+                    return  rj;
+                }
+                //修改审核历史记录状态为已通过 同级其它审核人任务状态为其他人已审核
+                HistoricalRecord recordinfo = new HistoricalRecord();
+                recordinfo.setApprovalId(approvalInfo.getApprovalId());
+                recordinfo.setRecordState(6);
+                recordinfo.setApprovalTime(new Date());
+                if(approvalOrderMapper.updateHistoricalRecord(recordinfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改其它审核人审核历史记录状态失败!");
+                    return  rj;
+                }
+                recordinfo.setAdminId(admin.getAdminId());
+                recordinfo.setRecordState(2);
+                if(approvalOrderMapper.updateHistoricalRecord(recordinfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改审核历史记录状态失败!");
+                    return  rj;
+                }
+                //获取下一个审核人,并添加审核历史信息
+                Map<String, Object> taskMap = approvalTaskService.completeTask(approvalInfo.getActivitiId(),record.getTaskId());
+                if(taskMap == null){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("获取下一个审核人,并添加审核历史信息失败!");
+                    return  rj;
+                }
+                if((Integer) taskMap.get("status") == 1){//没有下一个审批人,修改审批任务状态为已审批通过
+                    info.setApprovalStatus(2);
+                    info.setApprovalStatusDetails("已审核,待入库");
+                    if(approvalOrderMapper.updateApprovalInfo(info) < 1){
+                        rj = ResponseJson.getFAILURE();
+                        rj.setResultMsg("修改审批信息失败!");
+                        return  rj;
+                    }
+                    //判断是生产审批或提货审批
+                    if(info.getApprovalType() == 1){
+                        //推送微信模板消息通知
+                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
+                        ApprovalProduction production = approvalOrderMapper.getApprovalProductionById(approvalInfo.getApprovalId());
+                        Admin admininfo = new Admin();
+                        admininfo.setAdminId(production.getApplicantId());
+                        admininfo = sysMapper.getAdminInfo(admininfo);
+                        if(admininfo.getAdminOpenId() == null ){
+                            rj = ResponseJson.getFAILURE();
+                            rj.setResultMsg("获取管理信息失败!");
+                            return  rj;
+                        }
+                        //通知申请人该审批已通过
+                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
+                        sendMessageUtil.reviewResultsPush("亲,您提交的申请 "+admin.getAdminName()+" 已处理。",
+                                production.getApplicantName(),
+                                "通过",
+                                format.format(new Date()),
+                                "审核通过后可通过公众号进入系统",
+                                admininfo.getAdminOpenId(),
+                                ResultInfo.LISTISTARTED);
+                        //通知仓库订单已确认
+                        //获取仓库人员openid
+                        Admin adminTwo = new Admin();
+                        adminTwo.setAdminDept(8);//工厂仓库部
+                        List<Admin> listAdmin = sysMapper.listAdmin(adminTwo);
+                        List<ApprovalProductionItem> items = approvalOrderMapper.getIteminfo(approvalInfo.getApprovalId());
+                        String products = "";
+                        Integer num = 0;
+                        for(ApprovalProductionItem item : items){
+                            products = products + item.getItemProductName()+",";
+                            num = item.getItemProductNum()+num;
+                        }
+                        products = products.substring(0,products.length() - 1);
+                        sendMessageUtil.putStoragePush(admininfo.getAdminName()+"的生产订单已确认,请在生产入库后确认",
+                                products,
+                                ""+num,
+                                admin.getAdminName(),
+                                "优尼雅仓库",
+                                "如有疑问请联系上级领导人",
+                                listAdmin.get(0).getAdminOpenId(),
+                                ResultInfo.LISTWAREHOUSE);
+                    }else{
+                        //通知申请人该提货审批已通过
+                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
+                        ApprovalApplyPick  approvalApplyPick = new ApprovalApplyPick();
+                        approvalApplyPick.setApprovalId(approvalInfo.getApprovalId());
+                        List<ApprovalApplyPick> pickList = applyPickMapper.listOrderBatchPage(approvalApplyPick);
+                        String products = "";
+                        for(ApprovalApplyPickItem PickItem : pickList.get(0).getListApplyPickItem()){
+                            products = products+PickItem.getItemProductName()+",";
+                        }
+                        products = products.substring(0,products.length()-1);
+                        Admin admininfo = new Admin();
+                        admininfo.setAdminId(pickList.get(0).getAdminId());
+                        admininfo = sysMapper.getAdminInfo(admininfo);
+                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
+                        sendMessageUtil.applicationFormPush("您的申领单被 "+admin.getAdminName()+" 通过。",
+                                format.format(new Date()),
+                                "0000000"+approvalInfo.getApprovalId(),
+                                products,
+                                "点击查看详情",
+                                admininfo.getAdminOpenId(),
+                                ResultInfo.LISTISTARTED);
+                    }
+
+                }else if((Integer) taskMap.get("status") == 0){//还有下一个审批人,需要增加审批历史任务
+                    //修改状态为已完成部分审批
+                    info.setApprovalStatus(4);
+                    if(approvalOrderMapper.updateApprovalInfo(info) < 1){
+                        rj = ResponseJson.getFAILURE();
+                        rj.setResultMsg("修改审批信息状态失败!");
+                        return  rj;
+                    }
+                    if(taskMap.get("users") == null){
+                        rj = ResponseJson.getFAILURE();
+                        rj.setResultMsg("获取下一个审批人失败!");
+                        return  rj;
+                    }
+                    String[] split = (String[])taskMap.get("users");
+                    for (String name : split){
+                        //通过name查询管理员id
+                        Admin approvalAdmin = sysMapper.getByName(name);
+                        if(approvalAdmin == null){
+                            rj = ResponseJson.getFAILURE();
+                            rj.setResultMsg("查询管理员失败!");
+                            return  rj;
+                        }
+
+                        HistoricalRecord recordInfo = new HistoricalRecord();
+                        recordInfo.setApprovalId(approvalInfo.getApprovalId());
+                        recordInfo.setAdminId(approvalAdmin.getAdminId());
+                        recordInfo.setRecordState(1);
+                        recordInfo.setTaskId(taskMap.get("taskId").toString());
+                        if(approvalOrderMapper.insertHistoricalRecord(recordInfo) < 1){
+                            rj = ResponseJson.getFAILURE();
+                            rj.setResultMsg("添加历史审批人失败!");
+                            return  rj;
+                        }
+                        //修改审核信息表
+                        info.setApprovalStatusDetails("待"+approvalAdmin.getAdminName()+"审批");
+                        if(approvalOrderMapper.updateApprovalInfo(info) < 1){
+                            rj = ResponseJson.getFAILURE();
+                            rj.setResultMsg("修改审核信息失败!");
+                            return  rj;
+                        }
+                        //推送微信模板消息通知
+                        //查询审批订单信息
+                        ApprovalProduction production = approvalOrderMapper.getApprovalProductionById(approvalInfo.getApprovalId());
+                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
+                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
+                        sendMessageUtil.orderReviewResultsPush("你好,你有个订单需要你的审核",
+                                production.getApplicantOrderNo(),
+                                approvalInfo.getApprovalApplicant(),
+                                format.format(new Date()),
+                                approvalInfo.getApprovalName(),
+                                "点击查看详细信息",
+                                approvalAdmin.getAdminOpenId(),
+                                ResultInfo.LISTBEREVIEWED);
+                    }
+                }
+                //添加流程信息记录
+                processInfo.setProcessState(2);
+                if(approvalOrderMapper.insertProcessInfo(processInfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("添加流程信息记录失败!");
+                    return  rj;
+                }
+                break;
+            case 2:
+                //修改历史记录状态为已驳回
+                HistoricalRecord recordinfo2 = new HistoricalRecord();
+                recordinfo2.setApprovalId(approvalInfo.getApprovalId());
+                recordinfo2.setRecordState(6);
+                recordinfo2.setApprovalTime(new Date());
+                if(approvalOrderMapper.updateHistoricalRecord(recordinfo2) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改其它审核人历史记录状态为其他人已审核!");
+                    return  rj;
+                }
+                recordinfo2.setAdminId(admin.getAdminId());
+                recordinfo2.setRecordState(3);
+                if(approvalOrderMapper.updateHistoricalRecord(recordinfo2) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改审核历史记录状态失败!");
+                    return  rj;
+                }
+
+                info.setApprovalStatus(3);
+                if(approvalOrderMapper.updateApprovalInfo(info) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改审批信息失败!");
+                    return  rj;
+                }
+                //添加流程信息记录
+                processInfo.setProcessState(3);
+                if(approvalOrderMapper.insertProcessInfo(processInfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("添加流程信息记录失败!");
+                    return  rj;
+                }
+
+                //调用第三方revokeTask接口执行撤销
+                approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"审批人驳回审核");
+                break;
+            case 3:
+                //修改审批信息状态为撤销
+                info.setApprovalStatus(9);
+                if(approvalOrderMapper.updateApprovalInfo(info) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("修改审批信息状态为撤销失败!");
+                    return  rj;
+                }
+                //删除该审批的历史记录
+                approvalOrderMapper.deleteHistoricalRecord(approvalInfo.getApprovalId());
+
+                //添加流程信息记录
+                processInfo.setProcessState(4);
+                if(approvalOrderMapper.insertProcessInfo(processInfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("添加流程信息记录失败!");
+                    return  rj;
+                }
+                //调用第三方revokeTask接口执行撤销
+                approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"业务员撤销审核");
+                break;
+            case 4:
+                //添加评论内容到流程信息表,不用修改任何状态
+                processInfo.setProcessState(0);
+                if(approvalOrderMapper.insertProcessInfo(processInfo) < 1){
+                    rj = ResponseJson.getFAILURE();
+                    rj.setResultMsg("添加评论内容到流程信息失败!");
+                    return  rj;
+                }
+                break;
+        }
+        return rj;
+    }
 }

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

@@ -203,8 +203,9 @@
     (#{approvalId},#{adminId},#{processDesc},#{processState},#{recordId},NOW())
   </insert>
 
-  <insert id="insertHistoricalRecord" parameterType="HistoricalRecord">
+  <insert id="insertHistoricalRecord" parameterType="HistoricalRecord"   useGeneratedKeys="true" keyProperty="recordId">
     INSERT INTO tb_rst_historical_record(
+    record_id,
     approval_id,
     admin_id,
     record_state,
@@ -213,7 +214,7 @@
     record_create_time
     )
     VALUES
-    (#{approvalId},#{adminId},#{recordState},#{taskId},#{approvalTime},NOW())
+    (#{recordId},#{approvalId},#{adminId},#{recordState},#{taskId},#{approvalTime},NOW())
   </insert>
 
 
@@ -261,6 +262,7 @@
       <if test="adminId != null and adminId != ''">
         AND  admin_id = #{adminId}
       </if>
+      AND record_state != 2
     </where>
   </update>
 
@@ -327,7 +329,7 @@
         AND hr.admin_id = #{approvalAdminId}
       </if>
       <if test="selectType != null and selectType != '' and selectType == 3">
-        AND ai.approval_status in (5,6,7,8)
+        AND ai.approval_status in (2,5,6,7,8)
       </if>
       <if test="selectName != null and selectName != ''">
         AND ai.approval_name LIKE CONCAT('%',#{selectName},'%')
@@ -335,10 +337,11 @@
         OR ai.approval_remark LIKE CONCAT('%',#{selectName},'%')
       </if>
       <if test="approvalCreateTime != null and approvalCreateTime != ''">
-        to_days(#{approvalCreateTime}) = to_days(ai.approval_create_time)
+        AND to_days(#{approvalCreateTime}) = to_days(ai.approval_create_time)
       </if>
     </where>
-    ORDER BY approval_id DESC
+    group by ai.approval_id
+    ORDER BY ai.approval_id DESC
   </select>
 
   <!--查询生产审批信息-->
@@ -456,8 +459,10 @@
     hr.record_state recordState,
     hr.task_id taskId,
     hr.approval_time approvalTime,
-    hr.record_create_time recordCreateTime
+    hr.record_create_time recordCreateTime,
+    sa.admin_name adminName
     from tb_rst_historical_record hr
+    LEFT JOIN tb_rst_sys_admin sa on hr.admin_id = sa.admin_id
     <where>
       <if test="adminId != null and adminId != ''">
         hr.admin_id = #{adminId}
@@ -465,6 +470,9 @@
       <if test="approvalId != null and approvalId != ''">
         AND hr.approval_id = #{approvalId}
       </if>
+      <if test="recordState != null and recordState != '' and recordState == 1 ">
+        AND hr.record_state in (1,2,3)
+      </if>
     </where>
   </select>
 
@@ -517,8 +525,8 @@
   <update id="updateProductionItem" parameterType="ApprovalProductionItem">
     update tb_rst_approval_production_item
     <set >
-      <if test="itemShouldStorage != null" >
-        item_should_storage = #{itemShouldStorage},
+      <if test="itemActualStorage != null" >
+        item_actual_storage = #{itemActualStorage},
       </if>
       <if test="itemLackNumber != null" >
         item_lack_number = #{itemLackNumber}
@@ -611,6 +619,7 @@
     LEFT  JOIN tb_rst_sys_admin sa ON hr.admin_id = sa.admin_id
     where
        hr.approval_id = #{approvalId}
+       and record_state != 6
   </select>
 
     <select id="listProcessInfoByRecordId" parameterType="Integer" resultType="ProcessInfo">

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/sys/SysServiceImpl.java

@@ -134,6 +134,11 @@ public class SysServiceImpl implements SysService {
     }
 
     @Override
+    public List<Admin> listAdminInfo(Admin admin) {
+        return sysMapper.listAdmin(admin);
+    }
+
+    @Override
     public List<Admin> listGetAdmin(Admin admin) {
         return sysMapper.listAdmin(admin);
     }

+ 10 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApplyPickController.java

@@ -255,6 +255,16 @@ public class ApplyPickController {
         if(flag < 1){
             return new ResponseJson(500, "发货失败", 500);
         }
+        //修改审批信息状态为发货
+        ApprovalInfo approvalInfo = new ApprovalInfo();
+        approvalInfo.setApprovalId(aap.getApprovalId());
+        approvalInfo.setApprovalStatusDetails("已发货");
+        approvalInfo.setApprovalStatus(8);
+        if(approvalOrderService.updateApprovalInfo(approvalInfo) < 1){
+            rj = ResponseJson.getFAILURE();
+            rj.setResultMsg("修改审批信息状态为发货失败!");
+            return  rj;
+        }
         return rj;
     }
 

+ 44 - 305
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApprovalController.java

@@ -12,13 +12,10 @@ import com.iamberry.rst.faces.approval.ApprovalOrderService;
 import com.iamberry.rst.faces.approval.ApprovalProductionService;
 import com.iamberry.rst.faces.approval.ApprovalTaskService;
 import com.iamberry.rst.faces.sys.SysService;
-import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.file.FileType;
 import com.iamberry.wechat.tools.ResponseJson;
 import com.iamberry.wechat.tools.ResultInfo;
-import com.iamberry.wechat.tools.SendMessageUtil;
-import com.iamberry.wechat.tools.StrUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,6 +40,7 @@ import java.util.*;
  */
 
 @Controller
+/*@RequestMapping("/approval")*/
 @RequestMapping("/wechat/approval")
 public class ApprovalController {
     @Autowired
@@ -107,7 +105,7 @@ public class ApprovalController {
         //封装生产审批合同
         List<ApprovalProductionContract> listProductionContract = new ArrayList<ApprovalProductionContract>();
         JSONArray jsonproductionContracts = JSONArray.fromObject(productionContracts);
-        for (int i = 0; i < jsonProductionItems.size(); i++) {
+        for (int i = 0; i < jsonproductionContracts.size(); i++) {
             JSONObject contract = jsonproductionContracts.getJSONObject(i);
             ApprovalProductionContract contractInfo = new ApprovalProductionContract();
             contractInfo.setContractUrl(contract.getString("contractUrl"));
@@ -171,7 +169,6 @@ public class ApprovalController {
     @RequestMapping("/baseFileUpload")
     public ResponseJson baseFileUpload(HttpServletRequest req) throws IOException{
         ResponseJson responseJson = new ResponseJson();
-
         //取到前台传过来的 base64图片 并创建要存放在项目中的路径
         WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
         ServletContext servletContext = webApplicationContext.getServletContext();
@@ -218,7 +215,8 @@ public class ApprovalController {
                 boolean flag = generateImage(shareImgUrl, imgFilePath + "/" + fileName);
                 if(flag){
                     responseJson.setReturnCode(200);
-                    responseJson.addResponseKeyValue("imgUrl",ResultInfo.CONTRACT_IMAGE+fileName);
+                    String realPath = req.getServerName();
+                    responseJson.addResponseKeyValue("imgUrl","//"+realPath+ResultInfo.CONTRACT_IMAGE+fileName);
                 }else{
                     responseJson.setReturnCode(500);
                 }
@@ -337,7 +335,7 @@ public class ApprovalController {
         ResponseJson rj =new ResponseJson(200, "查询成功", 200);
         //获取openid,根据openid查询当前登录人信息
         String openId = WechatUtils.getUserBySession(request).getUserOpenid();
-        /*String openId = "oaH_GwObiozJFBypUg0wKJjQpBiU";*/
+        /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
         Admin admin = sysService.getByOpenid(openId);
         if(admin == null){
             return new ResponseJson(200, "未查询到登录人信息", 500);
@@ -348,7 +346,15 @@ public class ApprovalController {
             }else if(selectType == 2){//我审核的
                 approvalInfo.setApprovalAdminId(admin.getAdminId());
             }
+            if(selectType == 3){
+                //判断是否是仓库人员
+                if(admin.getAdminDept() != 8){//8为仓储部门
+                    List<ApprovalInfo> list = new ArrayList<>();
+                    return new ResponseJson(200, "非仓库人员不得查询", 501).addResponseKeyValue("approvalList",list);
+                }
+            }
         }
+
         String stareDate = request.getParameter("stareDate");
         if(stareDate != null ){
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@@ -381,248 +387,14 @@ public class ApprovalController {
         if(approvalInfo == null){
             return  ResponseJson.getFAILURE();
         }
-
-        ApprovalInfo ainfo = approvalOrderService.getApprovalInfoById(approvalInfo.getApprovalId());
-
-        approvalInfo.setApprovalName(ainfo.getApprovalName());
-        approvalInfo.setApprovalType(ainfo.getApprovalType());
-        approvalInfo.setActivitiId(ainfo.getActivitiId());
-
         //获取openid,根据openid查询当前登录人信息
         String openId = WechatUtils.getUserBySession(request).getUserOpenid();
+        /*String openId = "oEy-_s_o_1oIv6h_KAs7QkeTQiJY";*/
         Admin admin = sysService.getByOpenid(openId);
         if(admin == null){
             return new ResponseJson(200, "未查询到登录人信息", 500);
         }
-        //审批历史记录查询和封装
-        HistoricalRecord historicalRecord = new HistoricalRecord();
-        historicalRecord.setApprovalId(approvalInfo.getApprovalId());
-        historicalRecord.setAdminId(admin.getAdminId());
-        historicalRecord = approvalOrderService.getHistoricalRecord(historicalRecord);
-        if(historicalRecord == null){
-            return new ResponseJson(200, "未查询到审批记录信息", 500);
-        }
-        historicalRecord.setApprovalTime(new Date());
-        //流程信息封装
-        ProcessInfo processInfo = new ProcessInfo();
-        processInfo.setAdminId(admin.getAdminId());
-        processInfo.setApprovalId(approvalInfo.getApprovalId());
-        processInfo.setRecordId(historicalRecord.getRecordId());
-        processInfo.setProcessDesc(approvalInfo.getApprovalDetails());//后期在后台添加
-        //审批信息封装
-        ApprovalInfo info = new ApprovalInfo();
-        info.setApprovalId(ainfo.getApprovalId());
-        info.setApprovalType(ainfo.getApprovalType());
-        info.setApprovalName(ainfo.getApprovalName());
-        switch (status){
-            case 1:
-                //修改审核历史记录状态为已通过
-                historicalRecord.setRecordState(2);
-                if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("修改审核历史记录状态失败!");
-                    return  rj;
-                }
-                //查询当前审核人当前审核任务信息
-                HistoricalRecord record = approvalOrderService.getHistoricalRecord(historicalRecord);
-                if(record == null){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("查询当前审核人当前审核任务信息为空!");
-                    return  rj;
-                }
-                //获取下一个审核人,并添加审核历史信息
-                Map<String, Object> taskMap = approvalTaskService.completeTask(approvalInfo.getActivitiId(),record.getTaskId());
-                if(taskMap == null){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("获取下一个审核人,并添加审核历史信息失败!");
-                    return  rj;
-                }
-                if((Integer) taskMap.get("status") == 1){//没有下一个审批人,修改审批任务状态为已审批通过
-                    info.setApprovalStatus(2);
-                    if(approvalOrderService.updateApprovalInfo(info) < 1){
-                        rj = ResponseJson.getFAILURE();
-                        rj.setResultMsg("修改审批信息失败!");
-                        return  rj;
-                    }
-                    //判断是生产审批或提货审批
-                    if(info.getApprovalType() == 1){
-                        //推送微信模板消息通知
-                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
-                        ApprovalProduction production = approvalOrderService.getApprovalProductionById(approvalInfo.getApprovalId());
-                        Admin admininfo = new Admin();
-                        admininfo.setAdminId(production.getApplicantId());
-                        admininfo = sysService.getAdminInfo(admininfo);
-                        if(admininfo.getAdminOpenId() == null ){
-                            rj = ResponseJson.getFAILURE();
-                            rj.setResultMsg("获取管理信息失败!");
-                            return  rj;
-                        }
-                        //通知申请人该审批已通过
-                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
-                        sendMessageUtil.reviewResultsPush("亲,您提交的申请 "+admin.getAdminName()+" 已处理。",
-                                production.getApplicantName(),
-                                "通过",
-                                format.format(new Date()),
-                                "审核通过后可通过公众号进入系统",
-                                admininfo.getAdminOpenId(),
-                                "url");
-                        //通知仓库订单已确认
-                        //获取仓库人员openid
-                        Admin adminTwo = new Admin();
-                        adminTwo.setAdminId(68);//仓库管理员id
-                        adminTwo = sysService.get(adminTwo);
-                        List<ApprovalProductionItem> items = approvalOrderService.getIteminfo(approvalInfo.getApprovalId());
-                        String products = "";
-                        Integer num = 0;
-                        for(ApprovalProductionItem item : items){
-                            products = products + item.getItemProductName()+",";
-                            num = item.getItemProductNum()+num;
-                        }
-                        products = products.substring(0,products.length() - 1);
-                        sendMessageUtil.putStoragePush(admininfo.getAdminName()+"的生产订单已确认,请在生产入库后确认",
-                                products,
-                                ""+num,
-                                admin.getAdminName(),
-                                "优尼雅仓库",
-                                "如有疑问请联系上级领导人",
-                                adminTwo.getAdminOpenId(),
-                                "url");
-                    }else{
-                        //通知申请人该提货审批已通过
-                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
-                        ApprovalApplyPick  approvalApplyPick = new ApprovalApplyPick();
-                        approvalApplyPick.setApprovalId(approvalInfo.getApprovalId());
-                        List<ApprovalApplyPick> pickList = applyPickService.getApprovalApplyPickList(approvalApplyPick);
-                        String products = "";
-                        for(ApprovalApplyPickItem PickItem : pickList.get(0).getListApplyPickItem()){
-                            products = products+PickItem.getItemProductName()+",";
-                        }
-                        products = products.substring(0,products.length()-1);
-                        Admin admininfo = new Admin();
-                        admininfo.setAdminId(pickList.get(0).getAdminId());
-                        admininfo = sysService.getAdminInfo(admininfo);
-                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
-                        sendMessageUtil.applicationFormPush("您的申领单被 "+admin.getAdminName()+" 通过。",
-                                format.format(new Date()),
-                                "0000000"+approvalInfo.getApprovalId(),
-                                products,
-                                "点击查看详情",
-                                admininfo.getAdminOpenId(),
-                                "url");
-                    }
-
-                }else if((Integer) taskMap.get("status") == 0){//还有下一个审批人,需要增加审批历史任务
-                    if(taskMap.get("users") == null){
-                        rj = ResponseJson.getFAILURE();
-                        rj.setResultMsg("获取下一个审批人失败!");
-                        return  rj;
-                    }
-                    String[] split = (String[])taskMap.get("users");
-                    for (String name : split){
-                        //通过name查询管理员id
-                       Admin approvalAdmin = sysService.getByName(name);
-                       if(approvalAdmin == null){
-                           rj = ResponseJson.getFAILURE();
-                           rj.setResultMsg("查询管理员失败!");
-                           return  rj;
-                       }
-
-                        HistoricalRecord recordInfo = new HistoricalRecord();
-                        recordInfo.setApprovalId(approvalInfo.getApprovalId());
-                        recordInfo.setAdminId(approvalAdmin.getAdminId());
-                        recordInfo.setRecordState(1);
-                        recordInfo.setTaskId(taskMap.get("taskId").toString());
-                        if(approvalOrderService.insertHistoricalRecord(recordInfo) < 1){
-                            rj = ResponseJson.getFAILURE();
-                            rj.setResultMsg("添加历史审批人失败!");
-                            return  rj;
-                        }
-                        //修改审核信息表
-                        info.setApprovalStatusDetails("待"+name+"审批");
-                        if(approvalOrderService.updateApprovalInfo(info) < 1){
-                            rj = ResponseJson.getFAILURE();
-                            rj.setResultMsg("修改审核信息失败!");
-                            return  rj;
-                        }
-                        //推送微信模板消息通知
-                          //查询审批订单信息
-                        ApprovalProduction production = approvalOrderService.getApprovalProductionById(approvalInfo.getApprovalId());
-                        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
-                        SendMessageUtil sendMessageUtil = new SendMessageUtil();
-                        sendMessageUtil.orderReviewResultsPush("你好,你有个订单需要你的审核",
-                                production.getApplicantOrderNo(),
-                                approvalInfo.getApprovalApplicant(),
-                                format.format(new Date()),
-                                approvalInfo.getApprovalName(),
-                                "点击查看详细信息",
-                                approvalAdmin.getAdminOpenId(),
-                                "url");
-                    }
-                }
-                //添加流程信息记录
-                processInfo.setProcessState(2);
-                if(approvalOrderService.insertProcessInfo(processInfo) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("添加流程信息记录失败!");
-                    return  rj;
-                }
-                break;
-            case 2:
-                //修改历史记录状态为已驳回
-                historicalRecord.setRecordState(3);
-                if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("修改历史记录状态为已驳回失败!");
-                    return  rj;
-                }
-                info.setApprovalStatus(3);
-                if(approvalOrderService.updateApprovalInfo(info) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("修改审批信息失败!");
-                    return  rj;
-                }
-                //添加流程信息记录
-                processInfo.setProcessState(3);
-                if(approvalOrderService.insertProcessInfo(processInfo) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("添加流程信息记录失败!");
-                    return  rj;
-                }
-
-                //调用第三方revokeTask接口执行撤销
-                approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"审批人驳回审核");
-                break;
-            case 3:
-                //修改审批信息状态为撤销
-                info.setApprovalStatus(9);
-                if(approvalOrderService.updateApprovalInfo(info) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("修改审批信息状态为撤销失败!");
-                    return  rj;
-                }
-                //删除该审批的历史记录
-                approvalOrderService.deleteHistoricalRecord(approvalInfo.getApprovalId());
-
-                //添加流程信息记录
-                processInfo.setProcessState(4);
-                if(approvalOrderService.insertProcessInfo(processInfo) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("添加流程信息记录失败!");
-                    return  rj;
-                }
-                //调用第三方revokeTask接口执行撤销
-                approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"业务员撤销审核");
-                break;
-            case 4:
-                //添加评论内容到流程信息表,不用修改任何状态
-                processInfo.setProcessState(0);
-                if(approvalOrderService.insertProcessInfo(processInfo) < 1){
-                    rj = ResponseJson.getFAILURE();
-                    rj.setResultMsg("添加评论内容到流程信息失败!");
-                    return  rj;
-                }
-                break;
-        }
+        rj = approvalOrderService.auditApprovalinfo(approvalInfo,admin,status);
         return rj;
     }
 
@@ -643,13 +415,20 @@ public class ApprovalController {
         }
         //获取openid,根据openid查询当前登录人信息
         String openId = WechatUtils.getUserBySession(request).getUserOpenid();
+        /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
         Admin admin = sysService.getByOpenid(openId);
         if(admin == null){
             return new ResponseJson(200, "未查询到登录人信息", 500);
         }
+        //判断是否是仓库人员
+        int isDelivery = 2;
+        if(admin.getAdminDept() == 8){//8为仓储部门
+            isDelivery = 1;
+        }
         HistoricalRecord historicalRecord = new HistoricalRecord();
         historicalRecord.setApprovalId(approvalInfo.getApprovalId());
         historicalRecord.setAdminId(admin.getAdminId());
+        historicalRecord.setRecordState(1);
         historicalRecord = approvalOrderService.getHistoricalRecord(historicalRecord);
         List<ApprovalInfo> info = approvalOrderService.getApprovalInfo(approvalInfo);
         if(info.size() < 1){
@@ -658,6 +437,7 @@ public class ApprovalController {
         rj.addResponseKeyValue("approvalInfo",info.get(0));
         rj.addResponseKeyValue("historicalRecord",historicalRecord);
         rj.addResponseKeyValue("adminid",admin.getAdminId());
+        rj.addResponseKeyValue("isDelivery",isDelivery);
         return rj;
     }
 
@@ -670,81 +450,23 @@ public class ApprovalController {
     @ResponseBody
     @RequestMapping(value = "/addInventoryRecords")
     public ResponseJson addInventoryRecords(HttpServletRequest request, String inventoryRecordss){
-        ResponseJson rj =new ResponseJson(200, "添加成功", 200);
         if (inventoryRecordss == null || inventoryRecordss.equals("")) {
             return  ResponseJson.getFAILURE();
         }
         //获取openid,根据openid查询当前登录人信息
         String openId = WechatUtils.getUserBySession(request).getUserOpenid();
+        /*String openId = "oEy-_s5C7LwmLGTpEGfJoecfsYZc";*/
         Admin admin = sysService.getByOpenid(openId);
         if(admin == null){
             return new ResponseJson(200, "未查询到登录人信息", 500);
         }
-        Integer appvalId = 0;
-        Integer productNum = 0;
-        String productName = "";
-        JSONArray jsonRecordss = JSONArray.fromObject(inventoryRecordss);
-        for (int i = 0; i < jsonRecordss.size(); i++) {
-            JSONObject jsonRecords = jsonRecordss.getJSONObject(i);
-            //封装入库信息
-            ApprovalInventoryRecords records = new ApprovalInventoryRecords();
-            if(jsonRecords.get("shouldStorage") == null || jsonRecords.get("actualStorage") == null){
-                if(jsonRecords.getInt("shouldStorage") < jsonRecords.getInt("actualStorage")){
-                    return new ResponseJson(200, "实际入库数量不得大于应入库数量", 500);
-                }
-            }
-            records.setStorageState(jsonRecords.getInt("shouldStorage") > jsonRecords.getInt("actualStorage") ? 1 : 2);
-            records.setApprovalId(jsonRecords.getInt("approvalId"));
-            records.setProductName(jsonRecords.getString("productName"));
-            records.setColorName(jsonRecords.getString("colorName"));
-            records.setActualStorage(jsonRecords.getInt("actualStorage"));
-            records.setShouldStorage(jsonRecords.getInt("shouldStorage"));
-            records.setLackNumber(jsonRecords.getInt("lackNumber"));
-            records.setOperatingAdminId(admin.getAdminId());
-            if(approvalOrderService.insertInventoryRecords(records) < 1){
-                return new ResponseJson(200, "添加入库记录失败", 500);
-            }
-            //修改订单项信息
-            if(jsonRecords.get("itemId") == null || jsonRecords.get("itemId").equals("")){
-                return new ResponseJson(200, "产品项id不能为空", 500);
-            }
-
-            ApprovalProductionItem productionItem = approvalOrderService.getProductionItem(jsonRecords.getInt("itemId"));
-            if(productionItem.getItemActualStorage() < productionItem.getItemShouldStorage() + jsonRecords.getInt("shouldStorage")){
-                return new ResponseJson(200, "产品项id不能为空", 500);
-            }
-            productionItem.setItemShouldStorage(productionItem.getItemShouldStorage() + jsonRecords.getInt("shouldStorage"));
-            productionItem.setItemLackNumber(productionItem.getItemActualStorage() - (productionItem.getItemShouldStorage() + jsonRecords.getInt("shouldStorage")));
-            if(approvalOrderService.updateProductionItem(productionItem) < 1){
-                return new ResponseJson(200, "修改审批产品项失败", 500);
-            }
-            appvalId = jsonRecords.getInt("approvalId");
-            productNum = productNum + jsonRecords.getInt("actualStorage");
-            productName = productName + jsonRecords.getInt("productName")+",";
+        return approvalOrderService.insertInventoryRecords(inventoryRecordss,admin);
 
-        }
-        //推送入库微信模板消息通知
-        //查询审批订单信息
-        ApprovalInfo approvalInfo = approvalOrderService.getApprovalInfoById(appvalId);
-        SendMessageUtil sendMessageUtil = new SendMessageUtil();
-        productName = productName.substring(0,productName.length() - 1);
-        Admin adminTwo = new Admin();
-        adminTwo.setAdminId(68);//仓库管理员id
-        adminTwo = sysService.get(adminTwo);
-        sendMessageUtil.putStoragePush(approvalInfo.getApprovalName()+"已入库,本次入口总数量"+productNum+"台",
-                productName,
-                ""+productNum,
-                admin.getAdminName(),
-                "优尼雅仓库",
-                "如有疑问请联系上级领导人",
-                adminTwo.getAdminOpenId(),
-                "url");
-        return rj;
     }
 
 
     /**
-     *  获取某个审批的整个审批流程 1:生成订单审批;2:提货申请
+     *  获取某个审批的整个审批流程及仓库审批人信息 1:生成订单审批;2:提货申请
      * @param
      * @return
      * @throws Exception
@@ -761,7 +483,24 @@ public class ApprovalController {
         if(info.size() < 1){
             return  ResponseJson.getFAILURE();
         }
-        rj.addResponseKeyValue("list",info);
+        List<String[]> listString = new ArrayList<>();
+        for (Object obj : info){
+            String[] strings = (String[])obj;
+            String[] str = new String[strings.length];
+            for(int i = 0;i< strings.length;i++){
+                Admin admin = sysService.getByName(strings[i]);
+                if(admin == null){
+                    return new ResponseJson(200, "未找到管理员信息("+strings[i]+")", 500);
+                }
+                str[i] = admin.getAdminName();
+            }
+            listString.add(str);
+        }
+        Admin adminTwo = new Admin();
+        adminTwo.setAdminDept(8);//工厂仓库部
+        List<Admin> listAdmin = sysService.listAdminInfo(adminTwo);
+        rj.addResponseKeyValue("list",listString);
+        rj.addResponseKeyValue("warehouseAdmin",listAdmin);
         return rj;
     }