1
0
فهرست منبع

出入库页面 新增功能

zyh 3 سال پیش
والد
کامیت
03507a75a7

+ 8 - 5
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/StockChangeDao.java

@@ -5,6 +5,7 @@ import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Dao
@@ -17,11 +18,13 @@ public interface StockChangeDao extends BaseDao<StockChangeEntity> {
 
     /**
      * 更新审核状态
-     *
-     * @param ids  要更新的数据
-     * @param type 状态
+     * @param map
+     *  ids         要更新的数据
+     *  auditBy     修改人
+     *  auditTime   修改时间
+     *  type        状态
      */
-    void updateAuditStatus(@Param("array") String[] ids, @Param("type") String type);
+    void updateAuditStatus(@Param("map")Map map,@Param("ids")String[] ids);
 
-    List<StockChangeEntity> queryListByIds(String[] ids);
+    List<StockChangeEntity> queryListByIds(String... ids);
 }

+ 26 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/haikong/StockChangeEntity.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.entity.haikong;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -336,4 +337,29 @@ public class StockChangeEntity implements Serializable {
     public Date getAuditTime() {
         return auditTime;
     }
+
+    @Override
+    public String toString() {
+        return "StockChangeEntity{" +
+                "id='" + id + '\'' +
+                ", type='" + type + '\'' +
+                ", time=" + time +
+                ", merchSn='" + merchSn + '\'' +
+                ", merch='" + merch + '\'' +
+                ", storeId=" + storeId +
+                ", store='" + store + '\'' +
+                ", thirdMerchSn='" + thirdMerchSn + '\'' +
+                ", audit='" + audit + '\'' +
+                ", thirdMerch='" + thirdMerch + '\'' +
+                ", remark='" + remark + '\'' +
+                ", createBy='" + createBy + '\'' +
+                ", createTime=" + createTime +
+                ", modifyBy='" + modifyBy + '\'' +
+                ", modifyTime=" + modifyTime +
+                ", auditBy='" + auditBy + '\'' +
+                ", auditTime=" + auditTime +
+                ", specification='" + specification + '\'' +
+                ", product='" + product + '\'' +
+                '}';
+    }
 }

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MerchService.java

@@ -69,4 +69,7 @@ public interface MerchService {
      * @return 删除条数
      */
     int deleteBatch(Integer[] ids);
+
+    MerchEntity queryByMerchSn(String merchSn);
+
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MerchServiceImpl.java

@@ -69,4 +69,9 @@ public class MerchServiceImpl
     public int deleteBatch(Integer[] ids) {
         return merchDao.deleteBatch(ids);
     }
+
+    @Override
+    public MerchEntity queryByMerchSn(String merchSn) {
+        return merchDao.findByMerchSn(merchSn);
+    }
 }

+ 46 - 4
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/StockChangeServiceImpl.java

@@ -5,13 +5,13 @@ import cn.hutool.core.date.DateUtil;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dto.StockChangeDto;
 import com.kmall.admin.dto.StockChangeRecordDto;
+import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.entity.ThirdMerchantBizEntity;
 import com.kmall.admin.entity.haikong.StockChangeRecordEntity;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.haikong.constant.Constants;
-import com.kmall.admin.service.GoodsService;
-import com.kmall.admin.service.ProductStoreRelaService;
-import com.kmall.admin.service.StoreService;
+import com.kmall.admin.service.*;
 import com.kmall.admin.service.haikong.StockChangeRecordService;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.MapBeanUtil;
@@ -59,6 +59,14 @@ public class StockChangeServiceImpl implements StockChangeService {
     @Autowired
     private GoodsService goodsService;
 
+    @Autowired
+    private ThirdMerchantBizService thirdMerchantBizService;
+
+    @Autowired
+    private MerchService merchService;
+
+
+
     private static final Logger log = LoggerFactory.getLogger(StockChangeServiceImpl.class);
 
     @Override
@@ -78,6 +86,36 @@ public class StockChangeServiceImpl implements StockChangeService {
 
     @Override
     public int save(StockChangeEntity stockChange) {
+        List<StockChangeEntity> stockChangeEntities = stockChangeDao.queryListByIds(stockChange.getId());
+        if (!stockChangeEntities.isEmpty()){
+            log.info("工单号已存在:{}",stockChange.getId());
+            throw new RRException("工单号已存在!");
+        }
+        MerchEntity merchEntity = merchService.queryByMerchSn(stockChange.getMerchSn());
+        if (Objects.isNull(merchEntity)){
+            log.info("商户名称查询不到:{}",stockChange.getMerchSn());
+            throw new RRException("商户编号不存在:"+stockChange.getMerchSn());
+        }
+
+        StoreEntity storeEntity = storeService.queryObject(stockChange.getStoreId());
+        if (Objects.isNull(storeEntity)){
+            log.info("门店名称查询不到:{}",stockChange.getStoreId());
+            throw new RRException("门店id不存在:"+stockChange.getStoreId());
+        }
+        ThirdMerchantBizEntity thirdMerchangByCode = thirdMerchantBizService.getThirdMerchangByCode(stockChange.getThirdMerchSn());
+        if (Objects.isNull(thirdMerchangByCode)){
+            log.info("第三方商户查询不到:{}",stockChange.getThirdMerchSn());
+            throw new RRException("第三方商户代码不存在:"+stockChange.getThirdMerchSn());
+        }
+        //商户名称
+        stockChange.setMerch(merchEntity.getMerchName());
+        //门店名称
+        stockChange.setStore(storeEntity.getStoreName());
+        //第三方商户名称
+        stockChange.setThirdMerch(thirdMerchangByCode.getThirdPartyMerchName());
+        SysUserEntity userEntity = ShiroUtils.getUserEntity();
+        stockChange.setCreateBy(userEntity.getUsername());
+        stockChange.setCreateTime(new Date());
         return stockChangeDao.save(stockChange);
     }
 
@@ -230,8 +268,12 @@ public class StockChangeServiceImpl implements StockChangeService {
                 goodsService.updateStockNumberByOutbound(stockChangeRecordEntities);
             }
         }
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("auditBy", ShiroUtils.getUserEntity().getUsername());
+        map.put("auditTime",new Date());
+        map.put("type",type);
 
-        stockChangeDao.updateAuditStatus(ids, type);
+        stockChangeDao.updateAuditStatus(map,ids);
     }
 
     @Override

+ 8 - 8
kmall-admin/src/main/resources/mybatis/mapper/haikong/StockChangeDao.xml

@@ -68,14 +68,14 @@
 		    r.product,
 		    r.specification
 		from mall_stock_change c
-		inner join mall_stock_change_record r
+		left join mall_stock_change_record r
 		on c.id =r.parent_id
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
 			AND c.name LIKE concat('%',#{name},'%')
 		</if>
-		<if test="id != null and id.trim() != ''">
-			AND c.id = #{id}
+		<if test="orderId != null and orderId.trim() != ''">
+			AND c.id = #{orderId}
 		</if>
 		<if test="type != null and type.trim() != ''">
 			AND c.type = #{type}
@@ -87,7 +87,7 @@
 		<if test="audit != null and audit.trim() != ''">
 			AND c.audit = #{audit}
 		</if>
-		<if test="storeName != null and storeName.trim() != ''">
+		<if test="storeId != null and storeId.trim() != ''">
 			AND c.store_id = #{storeId}
 		</if>
 		<choose>
@@ -182,11 +182,11 @@
 		where id = #{id}
 	</update>
 
-    <update id="updateAuditStatus">
-		update mall_stock_change set audit = #{type}
+    <update id="updateAuditStatus" >
+		update mall_stock_change set audit = #{map.type},audit_by =#{map.auditBy},audit_time=#{map.auditTime}
 		where id in
-		<foreach collection="array" item="item" open="(" separator="," close=")">
-			#{item}
+		<foreach collection="ids" item="ids" open="(" separator="," close=")">
+			#{ids}
 		</foreach>
 	</update>
 

+ 18 - 33
kmall-admin/src/main/webapp/WEB-INF/page/shop/stockchange.html

@@ -59,7 +59,7 @@
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
 
                 <i-button type="primary" @click="audit('1')"><i class="fa fa-pencil-square-o"></i>&nbsp;审核通过</i-button>
-                <i-button type="error" @click="audit('0')"><i class="fa fa-pencil-square-o"></i>&nbsp;审核拒绝</i-button>
+                <i-button type="error" @click="audit('2')"><i class="fa fa-pencil-square-o"></i>&nbsp;审核拒绝</i-button>
 
             </div>
         </Row>
@@ -70,54 +70,39 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
 		<i-form ref="formValidate" :model="stockChange" :rules="ruleValidate" :label-width="80">
+            <Form-item label="单号" prop="stockChangeId">
+                <i-input v-model="stockChange.id" placeholder="单号"/>
+            </Form-item>
             <Form-item label="出、入库类型,0:普通入库 1:调拨入库 2:销售出库 3:普通出库 4:调拨出库" prop="type">
-                <i-input v-model="stockChange.type" placeholder="出、入库类型,0:普通入库 1:调拨入库 2:销售出库 3:普通出库 4:调拨出库"/>
+                <i-select v-model="stockChange.type" placeholder="出、入库类型,0:普通入库 1:调拨入库 2:销售出库 3:普通出库 4:调拨出库" filterable label-in-value>
+                    <i-option v-for="stockChangeType in stockChangeTypes" :value="stockChangeType.value"
+                              :key="stockChangeType.id">{{stockChangeType.name}}
+                    </i-option>
+                </i-select>
             </Form-item>
             <Form-item label="出、入库时间" prop="time">
-                <i-input v-model="stockChange.time" placeholder="出、入库时间"/>
+                <i-input v-model="stockChange.time" placeholder="出、入库时间" type="datetime-local"/>
             </Form-item>
             <Form-item label="商户编号" prop="merchSn">
-                <i-input v-model="stockChange.merchSn" placeholder="商户编号"/>
-            </Form-item>
-            <Form-item label="商户名称" prop="merch">
-                <i-input v-model="stockChange.merch" placeholder="商户名称"/>
+                <i-input v-model="stockChange.merchSn" placeholder="商户编号" />
             </Form-item>
             <Form-item label="门店id" prop="storeId">
                 <i-input v-model="stockChange.storeId" placeholder="门店id"/>
             </Form-item>
-            <Form-item label="门店名称" prop="store">
-                <i-input v-model="stockChange.store" placeholder="门店名称"/>
-            </Form-item>
-            <Form-item label="第三方商户" prop="thirdMerchSn">
+            <Form-item label="第三方商户代码" prop="thirdMerchSn">
                 <i-input v-model="stockChange.thirdMerchSn" placeholder="第三方商户"/>
             </Form-item>
             <Form-item label="审核状态,0:待审核 1:审核成功 2:审核拒绝" prop="audit">
-                <i-input v-model="stockChange.audit" placeholder="审核状态,0:待审核 1:审核成功 2:审核拒绝"/>
-            </Form-item>
-            <Form-item label="第三方商户名称" prop="thirdMerch">
-                <i-input v-model="stockChange.thirdMerch" placeholder="第三方商户名称"/>
+                <i-select v-model="stockChange.audit" placeholder="审核状态" filterable label-in-value >
+                    <i-option v-for="stockChangeAudit in stockChangeAudits" :value="stockChangeAudit.value"
+                              :key="stockChangeAudit.id">{{stockChangeAudit.name}}
+                    </i-option>
+                </i-select>
             </Form-item>
             <Form-item label="备注" prop="remark">
                 <i-input v-model="stockChange.remark" placeholder="备注"/>
             </Form-item>
-            <Form-item label="创建人" prop="createBy">
-                <i-input v-model="stockChange.createBy" placeholder="创建人"/>
-            </Form-item>
-            <Form-item label="创建时间" prop="createTime">
-                <i-input v-model="stockChange.createTime" placeholder="创建时间"/>
-            </Form-item>
-            <Form-item label="修改人" prop="modifyBy">
-                <i-input v-model="stockChange.modifyBy" placeholder="修改人"/>
-            </Form-item>
-            <Form-item label="修改时间" prop="modifyTime">
-                <i-input v-model="stockChange.modifyTime" placeholder="修改时间"/>
-            </Form-item>
-            <Form-item label="审核人" prop="auditBy">
-                <i-input v-model="stockChange.auditBy" placeholder="审核人"/>
-            </Form-item>
-            <Form-item label="审核时间" prop="auditTime">
-                <i-input v-model="stockChange.auditTime" placeholder="审核时间"/>
-            </Form-item>
+
             <Form-item>
                 <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
                 <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>

+ 12 - 2
kmall-admin/src/main/webapp/js/shop/stockchange.js

@@ -93,7 +93,8 @@ let vm = new Vue({
 		uploadData:[],
 		stores:[],
 		stockChangeTypes:[],
-		stockChangeAudits:[]
+		stockChangeAudits:[],
+		saveOrUpdateState:true
 	},
 	methods: {
 		query: function () {
@@ -103,8 +104,10 @@ let vm = new Vue({
 			vm.showList = false;
 			vm.title = "新增";
 			vm.stockChange = {};
+			vm.saveOrUpdateState=true;
 		},
 		update: function (event) {
+			vm.saveOrUpdateState=false;
             let id = getSelectedRow();
 			if (id == null) {
 				alert("请选择数据!");
@@ -116,7 +119,9 @@ let vm = new Vue({
             vm.getInfo(id)
 		},
 		saveOrUpdate: function (event) {
-            let url = vm.stockChange.id == null ? "../stockchange/save" : "../stockchange/update";
+            let url = vm.saveOrUpdateState ? "../stockchange/save" : "../stockchange/update";
+			var time = vm.stockChange.time;
+			vm.stockChange.time = vm.timeFommater(vm.stockChange.time);
 			$.ajax({
 				type: "POST",
 			    url: url,
@@ -254,6 +259,11 @@ let vm = new Vue({
 			});
 			return promise; //通过返回一个promis对象解决
 
+		},
+		timeFommater:function (value) {
+			var dateee = new Date(value).toJSON();
+			var date = new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
+			return date;
 		}
 	},
 	mounted() {