Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

xian 6 лет назад
Родитель
Сommit
3abcc99467

+ 9 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/approval/ApprovalInventoryRecords.java

@@ -9,6 +9,7 @@ public class ApprovalInventoryRecords implements Serializable {
     private static final long serialVersionUID = -2060549066223267336L;
     private Integer storageId;//
     private Integer approvalId;//审批订单id
+    private Integer itemId;//审批订单产品项id
     private Integer storageState;//入库状态
     private Integer productId;//产品id
     private String productName;//产品名称
@@ -106,4 +107,12 @@ public class ApprovalInventoryRecords implements Serializable {
     public void setOperatingTime(Integer operatingTime) {
         this.operatingTime = operatingTime;
     }
+
+    public Integer getItemId() {
+        return itemId;
+    }
+
+    public void setItemId(Integer itemId) {
+        this.itemId = itemId;
+    }
 }

+ 5 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/approval/ApprovalOrderService.java

@@ -91,4 +91,9 @@ public interface ApprovalOrderService {
      * @return
      */
     Integer insertInventoryRecords(ApprovalInventoryRecords approvalInventoryRecords);
+    /**
+     * 查询单个审批订单项
+     * @return
+     */
+    ApprovalProductionItem getProductionItem(Integer itemId);
 }

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

@@ -109,7 +109,7 @@ public interface SysService {
      * @param admin
      * @return
      */
-    Admin getByOpenid(String admin);
+    Admin getByOpenid(String openid);
     /**
      * 根据用户姓名获取登录信息
      * @param adminName

+ 5 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/approval/ApprovalOrderServiceImpl.java

@@ -204,4 +204,9 @@ public class ApprovalOrderServiceImpl implements ApprovalOrderService {
     public Integer insertInventoryRecords(ApprovalInventoryRecords approvalInventoryRecords) {
         return approvalOrderMapper.insertInventoryRecords(approvalInventoryRecords);
     }
+
+    @Override
+    public ApprovalProductionItem getProductionItem(Integer itemId) {
+        return approvalOrderMapper.getProductionItem(itemId);
+    }
 }

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

@@ -80,6 +80,11 @@ public interface ApprovalOrderMapper {
       * @return
       */
      Integer insertInventoryRecords(ApprovalInventoryRecords approvalInventoryRecords);
+     /**
+      * 查询单个审批订单项
+      * @return
+      */
+     ApprovalProductionItem getProductionItem(Integer itemId);
 
 
 

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

@@ -333,7 +333,7 @@
   </select>
 
 
-  <!--查询提货产品项信息-->
+  <!--查询审批产品项信息-->
   <select id="listProductionItem" parameterType="Integer" resultType="ApprovalProductionItem">
     SELECT
     api.item_id itemId,
@@ -483,23 +483,18 @@
       <if test="itemShouldStorage != null" >
         item_should_storage = #{itemShouldStorage},
       </if>
-      <if test="itemActualStorage != null" >
-        item_actual_storage = #{itemActualStorage},
-      </if>
       <if test="itemLackNumber != null" >
         item_lack_number = #{itemLackNumber}
       </if>
     </set>
-    <where>
-      <if test="itemId != null and itemId != ''">
-        item_id = #{itemId}
-      </if>
-    </where>
+    WHERE
+    item_id = #{itemId}
   </update>
   <!-- 添加仓库入库记录-->
   <insert id="insertInventoryRecords" parameterType="ApprovalInventoryRecords">
     INSERT INTO tb_rst_approval_inventory_records(
     approval_id,
+    item_id,
     storage_state,
     product_id,
     product_name,
@@ -511,8 +506,31 @@
     operating_time
     )
     VALUES
-    (#{approvalId},#{storageState},#{productId}
+    (#{approvalId},#{itemId},#{storageState},#{productId}
     ,#{productName},#{colorName},#{shouldStorage}
     ,#{actualStorage},#{lackNumber},#{operatingAdminId},NOW())
   </insert>
+
+  <!--查询单个审批产品项信息-->
+  <select id="getProductionItem" 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_should_storage itemShouldStorage,
+    api.item_actual_storage itemActualStorage,
+    api.item_lack_number itemLackNumber,
+    api.item_create_time itemCreateTime,
+    api.item_update_time itemUpdateTime
+    from tb_rst_approval_production_item api
+    where
+    api.item_id = #{itemId}
+  </select>
 </mapper>

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

@@ -119,8 +119,8 @@ public class SysServiceImpl implements SysService {
     }
 
     @Override
-    public Admin getByOpenid(String admin) {
-        return sysMapper.getByOpenid(admin);
+    public Admin getByOpenid(String openid) {
+        return sysMapper.getByOpenid(openid);
     }
 
     @Override

+ 25 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/approval/ApplyPickController.java

@@ -1,7 +1,10 @@
 package com.iamberry.rst.controllers.approval;
 
+import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.faces.approval.ApplyPickItemService;
 import com.iamberry.rst.faces.approval.ApplyPickService;
+import com.iamberry.rst.faces.sys.SysService;
+import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.tools.ResponseJson;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -9,8 +12,10 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+
 @Controller
-@RequestMapping("/admin/applyPick")
+@RequestMapping("/wechat/applyPick")
 public class ApplyPickController {
 
     @Autowired
@@ -18,6 +23,9 @@ public class ApplyPickController {
     @Autowired
     private ApplyPickItemService applyPickItemService;
 
+    @Autowired
+    private SysService sysService;
+
     /**
      * 获取已审批通过的订单
      * @return
@@ -30,4 +38,20 @@ public class ApplyPickController {
         return null;
     }
 
+
+
+    /**
+     * 获取提货列表
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping("/listApplyPick")
+    public ResponseJson listApplyPick(HttpServletRequest request) {
+        String openId = WechatUtils.getUserBySession(request).getUserOpenid();
+        Admin admin = sysService.getByOpenid(openId);
+
+
+        return null;
+    }
+
 }

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

@@ -335,4 +335,61 @@ public class ApprovalController {
         return rj;
     }
 
+    /**
+     * 添加入库信息
+     * @param request
+     * @param inventoryRecordss
+     * @return
+     */
+    @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();
+        Admin admin = sysService.getByOpenid(openId);
+        if(admin == null){
+            return new ResponseJson(200, "未查询到登录人信息", 500);
+        }
+        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);
+            }
+        }
+        return rj;
+    }
 }

+ 8 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -281,6 +281,14 @@
     /*初始化省市区*/
     var address = $(".address_info").initAddress();
 
+   /* $(function (){
+        var ulc = initAddress($(".address_info"));
+        ulc.setUlcById($("#addressProvince"),13000000);
+//
+//        var s = $("#addressProvince").attr("ulclevel");
+//        alert(s);
+    })*/
+
     /*初始化销售公司店铺*/
     var sc = $(".sales_channel").initSalesChannel();
 

+ 163 - 33
watero-rst-web/src/main/webapp/common/js/common/address.js

@@ -296,13 +296,13 @@ function listDistrict(cityId,districtName){
                     {
                         ulcNode: ele.find(".ulcNode"),	//节点
                         ulcURL: "",	//url
-                        ulcId : ele.find(".ulcId"),	//节点id
+                        ulcId : ele.find(".ulcId"),	//节点option的value
                         ulcName: ele.find(".ulcNode").attr("ulcName"),
                         isFristSelect : false,	//是否有“请选择项”,
                         repData: function(res){ //res 即为原始返回的数据
                             return {
                                 "code": res.returnCode, //解析接口状态
-                                "msg": res.message, //解析提示文本
+                                "msg": res.resultMsg, //解析提示文本
                                 "count": res.total, //解析数据长度
                                 "data": res.returnMsg //解析数据列表
                             };
@@ -355,69 +355,199 @@ function listDistrict(cityId,districtName){
                 // countryName :  ele.find(".init_country").attr("countryName"),
                 initLock : false
             },
-
-
  */
 
 
-/*
+
 ;(function($,window,document,undefined){
     //定义UnlimitedLevelContact的构造函数
     var UnlimitedLevelContact = function(ele,opt) {
         this.$element = ele,
             this.ulcInfo = {
                 urlPrefix : "",
-                ulcLevel :  []
+                ulcLevel :  [],
+                execution:{
+                    // executionType : {
+                    //     A:initUlcLevel
+                    // } ,
+                    executionFun : []
+                }
             },
             this.options = $.extend({}, this.ulcInfo, opt)  //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
     }
     //定义Address的方法
     UnlimitedLevelContact.prototype = {
         init: function() {
+            this.initUlcLevel();
             if(this.options.ulcLevel.length > 0){
-                this.initUlc(0,null);
+                this.initUlc(0,"",null);
             }
             return this;
         },
-        initUlc : function(level,id){
-            var ulc = this;
-            var ulcLevel = this.options.ulcLevel[level];
+        initUlcLevel : function(){
+            $(this.options.ulcLevel).each(function (index){
+                //是否选中数据  1:选中  2:未选中
+                this.isSelected = 1;
 
-            $.get(ulc.options.urlPrefix + ulcLevel.ulcURL, function(result){
-                var node = ulcLevel;
+                /*初始化层次结构*/
+                $(this.ulcNode).attr("ulclevel",index);
+            })
+        },
+        initUlc : function(level,id,thisId){
+            //初始化联动
+            var ulc = this;
+            var node = ulc.options.ulcLevel[level];
+            $.get(ulc.options.urlPrefix + node.ulcURL + id, function(result){
+                $(node.ulcNode).empty();    //清空下拉框
+                if(node.isFristSelect){
+                    $(node.ulcNode).append("<option value=''>"+ node.fristSelectMsg +"</option>");
+                    node.isSelected = 2;
+                }
                 var res = node.repData(result);
-                if (res.code == 200) {
-                    node.ulcNode.empty();    //清空下拉框
+                if (res.code == res.isFlag) {
+                    //数据返回
+                    if(res.data.length < 1 && !node.isFristSelect){
+                        $(node.ulcNode).append("<option value=''></option>");
+                        node.isSelected = 2;
+                    }
                     $(res.data).each(function (){
                         var data =  node.parseData(this);
-                        $provinceNode.append("<option value='"+ data.id +"'>"+ this.val +"</option>");
+                        $(node.ulcNode).append("<option value='"+ data.id +"'>"+ data.val +"</option>");
                     })
-                    if(isEmpty(address.options.provinceId)){
-                        address.options.provinceId = result.returnMsg.provinceList[0].provinceId;
-                    }else if(isEmpty(address.options.provinceName)){
-                        address.options.provinceId = address.getAttrIdByName($provinceNode,address.options.provinceName);
-                    }else{
-                        address.options.provinceId = result.returnMsg.provinceList[0].provinceId;
+                    if(thisId != null){
+                        //赋值本下拉框的id
+                        $(node.ulcNode).val(thisId);
+                    }
+                    if(res.data.length > 0){
+                        node.ulcId = node.parseData(res.data[0]).id;
+                        if(ulc.options.ulcLevel.length-1 > level &&  node.isSelected == 1){
+                            $(node.ulcNode).change(function (){
+                                ulc.initUlc(level+1,$(node.ulcNode).val());
+                            })
+                            ulc.initUlc(level+1,node.ulcId);
+                        }
                     }
-                    address.setProvince();
                 }else{
-                    console.log("省份查询失败");
+                    console.log(res.msg);
                 }
             });
         },
-
-        cufte:function(val) {
-            if (undefined == val || null == val||typeof val == undefined || typeof val == 'undefined'|| 'undefined' == val) {
-                val = "";
+        setUlcById: function(){
+            /**
+             *  形参 1:level(级别)或者节点
+             *  形参 2:id 传入id的值
+             */
+            var ulc = this,level=-1;
+            if (arguments.length == 0) return this;
+            if(arguments[0].constructor == Number){
+                level = arguments[0];
+            }else{
+                //节点,传入节点,将进行取值ulclevel
+                level = $("#addressProvince").prop("ulclevel");
+                //https://www.cnblogs.com/zhuchenglin/p/7651990.html   异步取不到值
+                //https://blog.csdn.net/u013063153/article/details/52457307   异步取不到值
             }
-            return val;
+            if(level = -1){
+                console.log("setUlcId error!!!");
+                return ulc;
+            }
+            var upperLevelId='';
+            if(level != 0){
+                upperLevelId = ulc.options.ulcLevel[level-1].ulcId;
+            }
+            ulc.initUlc(level,upperLevelId,arguments[1]);
+            return this;
+        },
+        execute:function(){
+
         }
     }
     // initAddress 调用
-    $.fn.initAddress = function(options) {
-        var address = new Address(this, options);
-        address.init();
-        return address;
+    $.fn.initUlc = function(options) {
+        var ulc = new UnlimitedLevelContact(this, options);
+        ulc.init();
+        return ulc;
     }
 })(jQuery,window,document);
-*/
+
+
+function initAddress(addressNode){
+    var $provice = $(".address_info").find(".init_province");
+    var $city = $(".address_info").find(".init_city");
+    var $country = $(".address_info").find(".init_country");
+    var ulc = $(".address_info").initUlc({
+        urlPrefix: root_path,
+        ulcLevel :  [
+            {
+                ulcNode: $provice,	//节点
+                ulcURL: "/address/list_province",	//url
+                ulcId : $provice.attr("ulcId"),	//节点option的value
+                ulcName: $provice.attr("ulcName"),
+                isFristSelect : false,	//是否有“请选择项”  false:无
+                fristSelectMsg : "请选择",
+                repData: function(res){ //res 即为原始返回的数据
+                    return {
+                        "isFlag": 200, //code判断
+                        "code": res.returnCode, //解析接口状态
+                        "msg": res.resultMsg, //解析提示文本
+                        "data": res.returnMsg.provinceList //解析数据列表
+                    };
+                },
+                parseData:function(data){ //res 即为原始返回的数据
+                    return {
+                        "id": data.provinceId, //解析接口状态
+                        "val": data.province, //解析提示文本
+                        "msg": data.msg, //解析数据长度
+                    };
+                }
+            },
+            {
+                ulcNode: $city,	//节点
+                ulcURL: "/address/list_city?provinceId=",	//url
+                ulcId : $city.attr("ulcId"),	//节点option的value
+                ulcName: $city.attr("ulcName"),
+                isFristSelect : false,	//是否有“请选择项”,
+                fristSelectMsg : "请选择",
+                repData: function(res){ //res 即为原始返回的数据
+                    return {
+                        "isFlag": 200, //code判断
+                        "code": res.returnCode, //解析接口状态
+                        "msg": res.resultMsg, //解析提示文本
+                        "data": res.returnMsg.cityList //解析数据列表
+                    };
+                },
+                parseData:function(data){ //res 即为原始返回的数据
+                    return {
+                        "id": data.cityId, //解析接口状态
+                        "val": data.city, //解析提示文本
+                        "msg": data.msg, //解析数据长度
+                    };
+                }
+            },
+            {
+                ulcNode: $country,	//节点
+                ulcURL: "/address/list_district?cityId=",	//url
+                ulcId : $country.attr("ulcId"),	//节点option的value
+                ulcName: $country.attr("ulcName"),
+                isFristSelect : false,	//是否有“请选择项”,
+                fristSelectMsg : "请选择",
+                repData: function(res){ //res 即为原始返回的数据
+                    return {
+                        "isFlag": 200, //code判断
+                        "code": res.returnCode, //解析接口状态
+                        "msg": res.resultMsg, //解析提示文本
+                        "data": res.returnMsg.districtList //解析数据列表
+                    };
+                },
+                parseData:function(data){ //res 即为原始返回的数据
+                    return {
+                        "id": data.districtId, //解析接口状态
+                        "val": data.district, //解析提示文本
+                        "msg": data.msg, //解析数据长度
+                    };
+                }
+            }
+        ]
+    });
+    return ulc;
+}