From 426f307e9671ae076d99f0a7b9227fc4a6d60fda Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期二, 23 三月 2021 10:36:38 +0800
Subject: [PATCH] 1.0.3 erp出库-发货通知功能完成
---
src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java | 8
src/main/java/com/zy/asrs/service/OutStockService.java | 9
src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java | 182 ++++++++++++++++++
src/main/java/com/zy/asrs/entity/param/StockOutParam.java | 11 +
src/main/java/com/zy/asrs/mapper/OutStockMapper.java | 5
src/main/webapp/views/pakStore/outStockDetail.html | 159 +++++++++++++++
src/main/java/com/zy/asrs/controller/OutStockController.java | 33 +++
src/main/webapp/static/js/pakStore/outStock.js | 61 ++++-
src/main/resources/mapper/OutStockMapper.xml | 73 ++++++
src/main/webapp/views/pakStore/outStock.html | 10
10 files changed, 520 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutStockController.java b/src/main/java/com/zy/asrs/controller/OutStockController.java
index 147213a..7d982c9 100644
--- a/src/main/java/com/zy/asrs/controller/OutStockController.java
+++ b/src/main/java/com/zy/asrs/controller/OutStockController.java
@@ -4,14 +4,19 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.OutStockService;
+import com.zy.asrs.service.WorkService;
import com.zy.common.service.erp.entity.OutStockBillEntry;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
import java.util.Map;
@RestController
@@ -19,7 +24,16 @@
@Autowired
private OutStockService outStockService;
+ @Autowired
+ private WorkService workService;
+ /**
+ *
+ * @param curr
+ * @param limit
+ * @param param
+ * @return
+ */
@RequestMapping(value = "/outStock/query/list")
@ManagerAuth
public R outStockQueryList(@RequestParam(defaultValue = "1")Integer curr,
@@ -27,4 +41,23 @@
@RequestParam Map<String, Object> param){
return R.ok(outStockService.queryOutStock(toPage(curr, limit, param, OutStockBillEntry.class)));
}
+
+ /**
+ * 妫�绱㈢鍚堥�氱煡鍗曠殑搴撳瓨鐗╂枡
+ * @param fbillNo
+ * @return
+ */
+ @RequestMapping(value = "/outStock/query/locList")
+ @ManagerAuth
+ public R queryMatWithLoc(String fbillNo) {
+ List<LocDetl> list = outStockService.queryMatWithLoc(fbillNo);
+ return R.ok(list);
+ }
+
+ @RequestMapping(value = "/plate/outStock/start")
+ @ManagerAuth(memo = "鍑哄簱浣滀笟")
+ public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+ outStockService.startupFullTakeStore(param, getUserId());
+ return R.ok("鍑哄簱鍚姩鎴愬姛");
+ }
}
diff --git a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
index f55851b..49a3b16 100644
--- a/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -7,6 +7,9 @@
*/
public class StockOutParam {
+ // 鍗曟嵁缂栧彿
+ private String fbillNo;
+
// 鍑虹珯鍙�
private Integer outSite;
@@ -29,6 +32,14 @@
this.locDetls = locDetls;
}
+ public String getFbillNo() {
+ return fbillNo;
+ }
+
+ public void setFbillNo(String fbillNo) {
+ this.fbillNo = fbillNo;
+ }
+
public static class LocDetl {
// 搴撲綅鍙�
diff --git a/src/main/java/com/zy/asrs/mapper/OutStockMapper.java b/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
index 789894e..60d596d 100644
--- a/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OutStockMapper.java
@@ -1,6 +1,7 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.LocDetl;
import com.zy.common.service.erp.entity.OutStockBillEntry;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@@ -14,4 +15,8 @@
List<OutStockBillEntry> queryOutStock(Map<String, Object> map);
Integer queryOutStockCount(Map<String, Object> map);
+
+ List<LocDetl> queryMatWithLoc(String matnr);
+
+ List<OutStockBillEntry> queryMatnrWithBillNo(String fbillNo);
}
diff --git a/src/main/java/com/zy/asrs/service/OutStockService.java b/src/main/java/com/zy/asrs/service/OutStockService.java
index 611ac95..4876502 100644
--- a/src/main/java/com/zy/asrs/service/OutStockService.java
+++ b/src/main/java/com/zy/asrs/service/OutStockService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.param.StockOutParam;
import com.zy.common.service.erp.entity.OutStockBillEntry;
import java.math.BigDecimal;
@@ -10,4 +12,11 @@
public interface OutStockService extends IService<OutStockBillEntry> {
Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page);
+
+ List<LocDetl> queryMatWithLoc(String matnr);
+
+ /**
+ * 鍑哄簱浣滀笟
+ */
+ void startupFullTakeStore(StockOutParam param, Long userId);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
index 55965d5..81bf09b 100644
--- a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java
@@ -1,18 +1,198 @@
package com.zy.asrs.service.impl;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.mapper.OutStockMapper;
-import com.zy.asrs.service.OutStockService;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.VersionUtils;
+import com.zy.common.model.LocDetlDto;
+import com.zy.common.model.OutLocDto;
+import com.zy.common.service.CommonService;
import com.zy.common.service.erp.entity.OutStockBillEntry;
+import io.swagger.models.auth.In;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.*;
@Service("outStockService")
public class OutStockServiceImpl extends ServiceImpl<OutStockMapper, OutStockBillEntry> implements OutStockService{
+ // 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨�
+ private static final int DEFAULT_WORK_NO_TYPE = 0;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private BasDevpService basDevpService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private StaDescService staDescService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+
@Override
public Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page) {
page.setRecords(baseMapper.queryOutStock(page.getCondition()));
page.setTotal(baseMapper.queryOutStockCount(page.getCondition()));
return page;
}
+
+ @Override
+ public List<LocDetl> queryMatWithLoc(String fbillNo) {
+ List<OutStockBillEntry> matList = baseMapper.queryMatnrWithBillNo(fbillNo);
+ List<LocDetl> tempLocList = new ArrayList<LocDetl>();
+ List<LocDetl> locList = new ArrayList<LocDetl>();
+ for (Integer i = 0; i < matList.size(); i++) {
+ /*鑷姩鏍规嵁鐗╂枡缂栫爜閫夊彇鏈�浼樺嚭璐ч『搴忥紙鍏堣繘鍏堝嚭锛岄潬澶栬揣鐗╁厛鍑猴級*/
+ tempLocList = baseMapper.queryMatWithLoc(matList.get(i).getFNumber());
+ BigDecimal needNum = matList.get(i).getFAuxQty();
+ BigDecimal locNum = BigDecimal.ZERO;
+ if (tempLocList.size() > 0) {
+ for (Integer j = 0; j < tempLocList.size(); j ++) {
+ locNum = locNum.add(new BigDecimal(tempLocList.get(j).getAnfme()));
+ /* 璁$畻闇�瑕佺殑鏁伴噺锛岀鍚堟暟閲忓悗缁撴潫寰幆 */
+ if (needNum.compareTo(locNum) == 1) {
+ locList.add(tempLocList.get(j));
+ } else {
+ locList.add(tempLocList.get(j));
+ break;
+ }
+ }
+ }
+ }
+ return locList;
+ }
+
+ @Override
+ @Transactional
+ public void startupFullTakeStore(StockOutParam param, Long userId) {
+ // 鐩爣绔欑偣鐘舵�佹娴�
+ BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+ // 鑾峰彇搴撲綅鏄庣粏
+ List<LocDetlDto> locDetlDtos = new ArrayList<>();
+ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
+ if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+ LocDetl sqlParam = new LocDetl();
+ sqlParam.setLocNo(paramLocDetl.getLocNo());
+ sqlParam.setMatnr(paramLocDetl.getMatnr());
+ LocDetl one = locDetlService.selectOne(new EntityWrapper<>(sqlParam));
+ if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+ }
+ }
+ if (!locDetlDtos.isEmpty()) {
+ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+ stockOut(staNo, locDetlDtos, null, userId, param.getFbillNo());
+ } else {
+ throw new CoolException("搴撲綅鐗╂枡涓嶅瓨鍦�");
+ }
+ }
+
+// @Override
+ @Transactional
+ public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, Integer ioType, Long userId, String fbillNo) {
+ // 鍚堝苟鍚岀被椤�
+ Set<String> locNos = new HashSet<>();
+ locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
+ List<OutLocDto> dtos = new ArrayList<>();
+ for (String locNo : locNos) {
+ List<LocDetlDto> list = new ArrayList<>();
+ Iterator<LocDetlDto> iterator = locDetlDtos.iterator();
+ while (iterator.hasNext()) {
+ LocDetlDto dto = iterator.next();
+ if (locNo.equals(dto.getLocDetl().getLocNo())) {
+ list.add(dto);
+ iterator.remove();
+ }
+ }
+ dtos.add(new OutLocDto(locNo, list));
+ }
+ // 鐢熸垚宸ヤ綔妗�
+ for (OutLocDto dto : dtos) {
+ // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
+ if (ioType == null) {
+ ioType = dto.isAll() ? 101 : 103;
+ }
+ // 鑾峰彇搴撲綅
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ // 鑾峰彇璺緞
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", ioType)
+ .eq("stn_no", staNo.getDevNo())
+ .eq("crn_no", locMast.getCrnNo());
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+ }
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+ wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+ wrkMast.setCrnNo(locMast.getCrnNo());
+ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+ wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(new Date());
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.insert(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo());
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
+ // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣�
+ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(new Date());
+ Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
+ wrkDetl.setAnfme(anfme); // 鏁伴噺
+ VersionUtils.setWrkDetl(wrkDetl, detlDto.getLocDetl()); // 鐗堟湰鎺у埗
+ wrkDetl.setAppeTime(new Date());
+ wrkDetl.setAppeUser(userId);
+ wrkDetl.setModiTime(new Date());
+ wrkDetl.setModiUser(userId);
+ wrkDetl.setWarehouse(fbillNo);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+ locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("F")) {
+ locMast.setLocSts(ioType==101?"R":"P");
+ locMast.setModiUser(userId);
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo());
+ }
+ } else {
+ throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+ }
+ }
+ // todo:luxiaotao
+ // 鍚屼竴鍒楃殑鍚屾椂鍑哄簱锛屽垯浼樺厛鍑烘祬搴撲綅
+ }
}
diff --git a/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java b/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
index 1f358df..12c8218 100644
--- a/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
+++ b/src/main/java/com/zy/common/service/erp/entity/OutStockBillEntry.java
@@ -11,6 +11,8 @@
*/
@Data
public class OutStockBillEntry {
+ /* 璁㈠崟鐘舵�侊紝鍑哄簱涓垨宸插嚭搴� */
+ private Integer workRecord;
/*鍗曟嵁缂栧彿-OutStockBill琛ㄦ暟鎹� */
private String FBillNo;
/*鍦板潃-OutStockBill琛ㄦ暟鎹�*/
@@ -93,7 +95,7 @@
private Integer FSourceTranType;
private Integer FSourceInterId;
-
+ /*鐢熶骇鍗曞彿*/
private String FSourceBillNo;
private Integer FContractInterID;
@@ -129,8 +131,8 @@
private String Fmodel;
private String Fname;
-
- private String Fnumber;
+ /*鐗╂枡缂栫爜(浜у搧浠g爜)*/
+ private String FNumber;
private String FBarCode;
diff --git a/src/main/resources/mapper/OutStockMapper.xml b/src/main/resources/mapper/OutStockMapper.xml
index d4c259a..8b61c42 100644
--- a/src/main/resources/mapper/OutStockMapper.xml
+++ b/src/main/resources/mapper/OutStockMapper.xml
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.OutStockMapper">
- <!-- 鏄犲皠缁撴灉 -->
+ <!-- OutStockBillEntry鏄犲皠缁撴灉 -->
<resultMap id="OutStockResultMap" type="com.zy.common.service.erp.entity.OutStockBillEntry">
<result column="FBrNo" property="FBrNo"/>
<result column="FInterID" property="FInterID"/>
@@ -13,8 +13,34 @@
<result column="FAuxPrice" property="FAuxPrice"/>
<result column="FDate" property="FDate"/>
<result column="FNote" property="FNote"/>
+ <result column="Fnumber" property="FNumber"/>
+ <result column="FSourceBillNo" property="FSourceBillNo"/>
<result column="FBillNo" property="FBillNo"/>
<result column="FAdd" property="FAdd"/>
+ <result column="workRecord" property="workRecord"/>
+ </resultMap>
+
+ <!-- asr_loc_detl鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.LocDetl">
+ <result column="loc_no" property="locNo" />
+ <result column="matnr" property="matnr" />
+ <result column="maktx" property="maktx" />
+ <result column="lgnum" property="lgnum" />
+ <result column="type" property="type" />
+ <result column="mnemonic" property="mnemonic" />
+ <result column="supplier" property="supplier" />
+ <result column="warehouse" property="warehouse" />
+ <result column="brand" property="brand" />
+ <result column="anfme" property="anfme" />
+ <result column="altme" property="altme" />
+ <result column="zpallet" property="zpallet" />
+ <result column="bname" property="bname" />
+ <result column="memo" property="memo" />
+ <result column="modi_user" property="modiUser" />
+ <result column="modi_time" property="modiTime" />
+ <result column="appe_user" property="appeUser" />
+ <result column="appe_time" property="appeTime" />
+ <result column="mat_status" property="matStatus" />
</resultMap>
<sql id="stockOutCondition">
@@ -27,11 +53,15 @@
select * from
(
select ROW_NUMBER() over (order by a.FInterID,a.FEntryID) as row,a.FBrNo,a.FInterID,a.FEntryID,
- a.FOrderInterID,a.FAuxQty,a.FCommitQty,a.FAuxPrice,a.FDate,a.FNote, b.FBillNo, b.FAdd
+ a.FOrderInterID,a.FAuxQty,a.FCommitQty,a.FAuxPrice,a.FDate,a.FNote, a.Fnumber, a.FSourceBillNo, b.FBillNo,
+ b.FAdd,
+ ((select COUNT(*) from asr_wrk_detl where warehouse = b.FBillNo and matnr = a.Fnumber) + (select COUNT(*) from asr_wrk_detl_log where warehouse = b.FBillNo and matnr = a.Fnumber)) as workRecord
from OutStockBillEntry a left join OutStockBill b on a.FInterID = b.FInterID
where 1=1
- <include refid="stockOutCondition"></include>
- ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+ <if test="FBillNo!=null and FBillNo!='' ">
+ and b.FBillNo = #{FBillNo}
+ </if>
+ ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) and workRecord = 0
</select>
<select id="queryOutStockCount" parameterType="java.util.Map" resultType="java.lang.Integer">
@@ -41,4 +71,39 @@
left join OutStockBill b on a.FInterID = b.FInterID
where 1=1
</select>
+
+ <select id="queryMatnrWithBillNo" resultMap="OutStockResultMap">
+ select * from (select ROW_NUMBER() over (order by a.FInterID,a.FEntryID) as row,a.FBrNo,a.FInterID,a.FEntryID,
+ a.FOrderInterID,a.FAuxQty,a.FCommitQty,a.FAuxPrice,a.FDate,a.FNote, a.Fnumber, a.FSourceBillNo, b.FBillNo,
+ b.FAdd,
+ ((select COUNT(*) from asr_wrk_detl where warehouse = b.FBillNo and matnr = a.Fnumber) + (select COUNT(*) from asr_wrk_detl_log where warehouse = b.FBillNo and matnr = a.Fnumber)) as workRecord
+ from OutStockBillEntry a left join OutStockBill b on a.FInterID = b.FInterID
+ where b.FBillNo = #{FBillNo}) t where t.workRecord = 0
+ </select>
+
+ <select id="queryMatWithLoc" resultMap="BaseResultMap">
+ select * from asr_loc_detl a left join asr_loc_mast b on a.loc_no = b.loc_no
+ where 1=1
+ and b.loc_sts = 'F'
+ and a.matnr = #{matnr}
+ order by
+ DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time)
+ desc,
+ case
+ when (left(a.loc_no, 2) = '01') then 0
+ when (left(a.loc_no, 2) = '02') then 1
+ when (left(a.loc_no, 2) = '03') then 1
+ when (left(a.loc_no, 2) = '04') then 0
+ when (left(a.loc_no, 2) = '05') then 0
+ when (left(a.loc_no, 2) = '06') then 1
+ when (left(a.loc_no, 2) = '07') then 1
+ when (left(a.loc_no, 2) = '08') then 0
+ when (left(a.loc_no, 2) = '09') then 0
+ when (left(a.loc_no, 2) = '10') then 1
+ when (left(a.loc_no, 2) = '11') then 1
+ when (left(a.loc_no, 2) = '12') then 0
+ else 0
+ end
+ desc
+ </select>
</mapper>
diff --git a/src/main/webapp/static/js/pakStore/outStock.js b/src/main/webapp/static/js/pakStore/outStock.js
index 556ff58..0725dfd 100644
--- a/src/main/webapp/static/js/pakStore/outStock.js
+++ b/src/main/webapp/static/js/pakStore/outStock.js
@@ -1,11 +1,13 @@
var pageCurr;
var tableMerge;
+var orderData;
+var outStockDetail;
function getCol() {
var cols = [];
cols.push(
{field: 'fbillNo', merge: true, align: 'center', title: '鍗曟嵁缂栧彿'}
- , {field: 'fadd', align: 'center', title: '鍦板潃'}
+ , {field: 'fnumber', align: 'center', title: '鐗╂枡缂栧彿'}
, {field: 'fentryID', align: 'center', title: '鍒嗗綍鍙�'}
, {field: 'forderInterID', align: 'center', title: '閿�鍞鍗曞崟鍙�'}
, {field: 'fauxQty', align: 'center', title: '鏁伴噺'}
@@ -13,7 +15,8 @@
, {field: 'fauxPrice', align: 'center', title: '鍗曚环'}
, {field: 'fdate', align: 'center', title: '鏃ユ湡'}
, {field: 'fnote', align: 'center', title: '澶囨敞'}
- , {fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+ , {field: 'fadd', align: 'center', title: '鍦板潃'}
+ , {fixed: 'right', merge: ['fbillNo'], title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
);
return cols;
}
@@ -25,13 +28,13 @@
var layDate = layui.laydate;
var form = layui.form;
var upload = layui.upload;
- tableMerge = layui.tableMerge
+ tableMerge = layui.tableMerge;
// 鏁版嵁娓叉煋
tableIns = table.render({
elem: '#salesOrder',
headers: {token: localStorage.getItem('token')},
- url: baseUrl+'/outStock/query/list',
+ url: baseUrl + '/outStock/query/list',
page: true,
limit: 16,
limits: [16, 50, 100, 200, 500],
@@ -54,12 +57,12 @@
response: {
statusCode: 200
},
- done: function(res, curr, count) {
+ done: function (res, curr, count) {
if (res.code === 403) {
- top.location.href = baseUrl+"/";
+ top.location.href = baseUrl + "/";
}
- pageCurr=curr;
- tableMerge.render(this)
+ pageCurr = curr;
+ layui.tableMerge.render(this);
}
});
@@ -83,7 +86,33 @@
, type: 'datetime'
, range: true
});
+
+ table.on('tool(salesOrder)', function (obj) {
+ var data = obj.data; //鑾峰緱褰撳墠琛屾暟鎹�
+ var layEvent = obj.event; //鑾峰緱 lay-event 瀵瑰簲鐨勫�硷紙涔熷彲浠ユ槸琛ㄥご鐨� event 鍙傛暟瀵瑰簲鐨勫�硷級
+ orderData = data;
+ // 濡傛灉鏄偣鍑绘搷浣滄寜閽�
+ if (layEvent == 'btnOut') {
+ outStockDetail = layer.open(
+ {
+ type: 2,
+ title: '閫夋嫨鍑哄簱-鍗曟嵁缂栧彿[' + orderData.fbillNo + ']',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'outStockDetail.html',
+ success: function (layero, index) {
+
+ }
+ }
+ );
+ }
+ });
});
+
+function getOrderData() {
+ return orderData;
+}
/* 琛ㄦ牸鏁版嵁閲嶈浇 */
function tableReload(child) {
@@ -102,21 +131,17 @@
top.location.href = baseUrl + "/";
}
pageCurr = curr;
- if (res.data.length === 0 && count !== 0) {
- tableIns.reload({
- where: searchData,
- page: {
- curr: pageCurr - 1
- }
- });
- pageCurr -= 1;
- }
- limit(child);
tableMerge.render(this);
}
});
}
+/* 鍏抽棴鏄庣粏 */
+function closeDetail(msg) {
+ layer.close(outStockDetail);
+ layer.msg(msg);
+}
+
/* 鐩戝惉鍥炶溅浜嬩欢 */
$('body').keydown(function () {
if (event.keyCode === 13) {
diff --git a/src/main/webapp/views/pakStore/outStock.html b/src/main/webapp/views/pakStore/outStock.html
index 9d040ee..c58e3df 100644
--- a/src/main/webapp/views/pakStore/outStock.html
+++ b/src/main/webapp/views/pakStore/outStock.html
@@ -41,15 +41,15 @@
<div id="search-box" class="layui-form layui-card-header">
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏ュ崟鎹紪鍙�" autocomplete="off">
+ <input class="layui-input" type="text" name="FBillNo" placeholder="璇疯緭鍏ュ崟鎹紪鍙�" autocomplete="off">
</div>
</div>
<!--<!– 鏃ユ湡鑼冨洿 –>-->
<!--<div class="layui-inline" style="width: 300px">-->
- <!--<div class="layui-input-inline">-->
- <!--<input class="layui-input layui-laydate-range" name="orderTime" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">-->
- <!--</div>-->
+ <!--<div class="layui-input-inline">-->
+ <!--<input class="layui-input layui-laydate-range" name="orderTime" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">-->
+ <!--</div>-->
<!--</div>-->
@@ -69,7 +69,7 @@
</div>
<script type="text/html" id="operate">
- <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="btnPrint">鎿嶄綔</button>
+ <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="btnOut">鍑哄簱</button>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/pakStore/outStockDetail.html b/src/main/webapp/views/pakStore/outStockDetail.html
new file mode 100644
index 0000000..c526c29
--- /dev/null
+++ b/src/main/webapp/views/pakStore/outStockDetail.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+ <link rel="stylesheet" href="../../static/css/print.css" media="all">
+
+</head>
+<body>
+<div>
+ <div class="layui-form" style="padding: 8px">
+ <span id="staNoSpan">鍑哄簱鍙o細</span>
+ <div style="display: inline-block; width: 200px">
+ <select id="staNoSelect" lay-verify="required">
+ <option value="">璇烽�夋嫨绔欑偣</option>
+ </select>
+ </div>
+ <button class="layui-btn layui-btn-sm" style="display: inline-block" id="btn-outbound" lay-event="outbound"
+ onclick="outbound()">鍚姩鍑哄簱
+ </button>
+ </div>
+ <table class="layui-hide" id="stockOut" lay-filter="stockOut"></table>
+</div>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{siteId}}">{{desc}}</option>
+ {{/each}}
+</script>
+
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script>
+ var orderData = parent.getOrderData();
+ var locData = [];
+ var form;
+
+
+ function getCol() {
+ var cols = [
+ {field: '', align: 'center', title: '', width: 50, type: 'numbers'}
+ , {field: 'locNo$', align: 'center', title: '搴撲綅鍙�'}
+ ];
+ cols.push.apply(cols, detlCols);
+ cols.push({field: 'modiUser$', align: 'center', title: '淇敼浜哄憳', hide: true}
+ , {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿', hide: true})
+ return cols;
+ }
+
+ layui.use(['table', 'laydate', 'form'], function () {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ form = layui.form;
+ // 鏁版嵁娓叉煋
+ locDetlTableIns = table.render({
+ elem: '#stockOut',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl + '/outStock/query/locList?fbillNo=' + orderData.fbillNo,
+ page: true,
+ limit: 9999,
+ limits: [9999],
+ even: true,
+// cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'data': res.data,
+ 'code': res.code,
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ }
+ locData = res.data;
+ }
+ });
+
+ $.ajax({
+ url: baseUrl + "/available/take/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200) {
+ var tpl = $("#takeSiteSelectTemplate").html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $('#staNoSelect').append(html);
+ form.render('select');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+
+ /* 鍚姩鍑哄簱 */
+ function outbound() {
+ if (locData.length == 0) {
+ layer.msg('璇峰厛娣诲姞搴撲綅鐗╂枡');
+ return;
+ } else {
+ var staNo = $("#staNoSelect").val();
+ if (staNo === "" || staNo === null){
+ layer.msg("璇烽�夋嫨鍑哄簱鍙�");
+ return;
+ }
+ var locDetls = [];
+ locData.forEach(function(elem) {
+ locDetls.push({locNo: elem.locNo, matnr: elem.matnr, count: elem.anfme});
+ });
+ let param = {
+ outSite: staNo,
+ locDetls: locDetls,
+ fbillNo: orderData.fbillNo,
+ }
+
+ $.ajax({
+ url: baseUrl+"/plate/outStock/start",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.closeDetail(res.msg);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ }
+ }
+</script>
+</html>
\ No newline at end of file
--
Gitblit v1.9.1