Преглед на файлове

2022年10月9日11:35:25

纪新园 преди 2 години
родител
ревизия
69fe03f965

+ 55 - 10
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java

@@ -11,12 +11,12 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.SysCheckCode;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel;
 import com.ruoyi.warehouseBusiness.domain.dto.WarehousebillsDTO;
 import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
 import com.ruoyi.warehouseBusiness.excel.CorpAnalysis;
@@ -30,7 +30,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
 import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
 import java.util.List;
@@ -48,6 +47,9 @@ public class TWarehouseInStockController extends BaseController {
     @Autowired
     private ITWarehouseBillsService itWarehouseBillsService;
 
+    @Autowired
+    private ITWarehousebillsitemsElabelService labelService;
+
     /**
      * 查询单据是否允许修改
      */
@@ -78,20 +80,20 @@ public class TWarehouseInStockController extends BaseController {
         tWarehouseBills.setfBilltype("SJRK");
         // 获取登录用户数据
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessListAddUser(tWarehouseBills,loginUser);
+        List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessListAddUser(tWarehouseBills, loginUser);
         return getDataTable(list);
     }
 
     @GetMapping("/longRageDownloadTemplate")
-    public AjaxResult longRageDownloadTemplate(){
+    public AjaxResult longRageDownloadTemplate() {
         String filePath = "";
         try {
             // 文件名
             String fileName = "入库模板.xlsx";
             // 请求地址以及文件名转换
-            String url = "http://121.36.212.131:8080/file/" + URLEncoder.encode(fileName,"UTF-8");
+            String url = "http://121.36.212.131:8080/file/" + URLEncoder.encode(fileName, "UTF-8");
             // 下载文件并返回文件名
-            filePath = downLoadFromUrl(url,fileName,RuoYiConfig.getDownloadPath());
+            filePath = downLoadFromUrl(url, fileName, RuoYiConfig.getDownloadPath());
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -100,12 +102,13 @@ public class TWarehouseInStockController extends BaseController {
 
     /**
      * 远程文件下载
-     * @param urlStr 远程文件链接地址
+     *
+     * @param urlStr   远程文件链接地址
      * @param fileName 下载文件名称
      * @param savePath 保存路径
      * @return 返回下载的文件名
      */
-    public static String downLoadFromUrl(String urlStr,String fileName,String savePath) {
+    public static String downLoadFromUrl(String urlStr, String fileName, String savePath) {
         try {
             URL url = new URL(urlStr);
             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
@@ -144,11 +147,11 @@ public class TWarehouseInStockController extends BaseController {
     /**
      * 从输入流中获取字节数组
      */
-    public static  byte[] readInputStream(InputStream inputStream) throws IOException {
+    public static byte[] readInputStream(InputStream inputStream) throws IOException {
         byte[] buffer = new byte[1024];
         int len = 0;
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        while((len = inputStream.read(buffer)) != -1) {
+        while ((len = inputStream.read(buffer)) != -1) {
             bos.write(buffer, 0, len);
         }
         bos.close();
@@ -515,4 +518,46 @@ public class TWarehouseInStockController extends BaseController {
         return util.exportExcel(list, "客户分析");
     }
 
+    /**
+     * 入库自动生成条形码
+     */
+    @PostMapping(value = "/generate")
+    @RepeatSubmit
+    public AjaxResult generate(@RequestParam("id") Long id,
+                               @RequestParam("itemId") Long itemId,
+                               @RequestParam("number") int number,
+                               @RequestParam("type") int type,
+                               @RequestParam("corpId") Long corpId) {
+
+        if (StringUtils.isNull(id) || StringUtils.isNull(itemId) || StringUtils.isNull(corpId)) {
+            return AjaxResult.error("缺少必要参数");
+        }
+        AjaxResult a = labelService.generate(id, itemId, number, type, corpId);
+        return a;
+    }
+
+    /**
+     * 出库自动生成条形码
+     */
+    @GetMapping(value = "/generateELabel")
+    @RepeatSubmit
+    public AjaxResult generateELabel(@RequestParam("originalBillNo") String originalBillNo) {
+
+        if (StringUtils.isNull(originalBillNo)) {
+            return AjaxResult.error("缺少必要参数");
+        }
+        TWarehouseBills tWarehouseBills = itWarehouseBillsService.selectBYOriginalBillNo(originalBillNo);
+        if (StringUtils.isNotNull(tWarehouseBills)) {
+            TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+            tWarehousebillsitemsElabel.setfGPid(tWarehouseBills.getfId());
+            tWarehousebillsitemsElabel.setfType(1);
+            tWarehousebillsitemsElabel.setfStatus(0);
+            List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = labelService.selectItemsElabelList(tWarehousebillsitemsElabel);
+            return AjaxResult.success(tWarehousebillsitemsElabelList);
+        } else {
+            return AjaxResult.error("操作失败");
+        }
+
+    }
+
 }

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java

@@ -345,4 +345,11 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
      * @return
      */
     List<Map<String, Object>> selectWareIdAndItemId(Map<String, Object> map);
+
+    /**
+     * 通过原始入库业务编号查找数据
+     * @param originalBillNo
+     * @return
+     */
+    TWarehouseBills selectBYOriginalBillNo(@Param("originalBillNo")String originalBillNo);
 }

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -923,4 +923,11 @@ public interface ITWarehouseBillsService {
      * @return
      */
     List<Map<String, Object>> selectWareIdAndItemId(Map<String, Object> map);
+
+    /**
+     * 通过原始入库业务编号查找数据
+     * @param originalBillNo
+     * @return
+     */
+    TWarehouseBills selectBYOriginalBillNo(String originalBillNo);
 }

+ 11 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehousebillsitemsElabelService.java

@@ -45,4 +45,15 @@ public interface ITWarehousebillsitemsElabelService {
      * @return
      */
     int updateLabel(TWarehousebillsitemsElabel tWarehousebillsitemsElabel);
+
+    /**
+     * 入库自动生成标签号
+     * @param id  主id
+     * @param itemId  明细id
+     * @param number  数量
+     * @param type  类型 1:入库  2:出库
+     * @param corpId  客户id
+     * @return
+     */
+    AjaxResult generate(Long id, Long itemId, int number, int type, Long corpId);
 }

+ 10 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -9968,6 +9968,16 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
+     * 通过原始入库业务编号查找数据
+     * @param originalBillNo
+     * @return
+     */
+    @Override
+    public TWarehouseBills selectBYOriginalBillNo(String originalBillNo) {
+        return tWarehouseBillsMapper.selectBYOriginalBillNo(originalBillNo);
+    }
+
+    /**
      * RSA 签名
      *
      * @param content    待签名数据

+ 65 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehousebillsitemsElabelServiceImpl.java

@@ -1,7 +1,11 @@
 package com.ruoyi.warehouseBusiness.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.basicData.domain.TCorps;
+import com.ruoyi.basicData.mapper.TCorpsMapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitemsElabel;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsitemsElabelMapper;
 import com.ruoyi.warehouseBusiness.service.ITWarehousebillsitemsElabelService;
@@ -9,16 +13,20 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsitemsElabelService {
 
     @Autowired
     private TWarehousebillsitemsElabelMapper elabelMapper;
+    @Autowired
+    private TCorpsMapper corpsMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -63,6 +71,7 @@ public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsit
 
     /**
      * app手持通过出入库主表id与明细从表id查询标签数据
+     *
      * @return
      */
     @Override
@@ -78,16 +87,18 @@ public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsit
 
     /**
      * 通过标签号查询列表(app手持)
+     *
      * @param labelCode
      * @return
      */
     @Override
-    public List<Map<String,Object>> labelSelectList(String labelCode) {
+    public List<Map<String, Object>> labelSelectList(String labelCode) {
         return elabelMapper.labelSelectList(labelCode);
     }
 
     /**
      * 修改标签状态
+     *
      * @param tWarehousebillsitemsElabel
      * @return
      */
@@ -96,4 +107,57 @@ public class TWarehousebillsitemsElabelServiceImpl implements ITWarehousebillsit
         elabelMapper.updateStatus(tWarehousebillsitemsElabel);
         return 1;
     }
+
+    /**
+     * 入库自动生成标签号
+     *
+     * @param id     主id
+     * @param itemId 明细id
+     * @param number 数量
+     * @param type   类型 1:入库  2:出库
+     * @param corpId 客户id
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult generate(Long id, Long itemId, int number, int type, Long corpId) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyymmdd");
+        Date date = new Date();
+        String date1 = simpleDateFormat.format(date);
+
+        TWarehousebillsitemsElabel Elabel = new TWarehousebillsitemsElabel();
+        Elabel.setfGPid(id);
+        Elabel.setfPid(itemId);
+        Elabel.setfType(type);
+        List<TWarehousebillsitemsElabel> tWarehousebillsitemsElabelList = elabelMapper.selectList(Elabel);
+        if (tWarehousebillsitemsElabelList.size()>0){
+            return AjaxResult.error("已生成标签,不允许重复操作");
+        }
+
+        TCorps corps = corpsMapper.selectTCorpsById(corpId);
+        if (StringUtils.isNotNull(corps) && StringUtils.isNotNull(corps.getfNo())) {
+            Stream.iterate(1, item -> item + 1).limit(number)
+                    .map(String::valueOf)
+                    .map(item -> {
+                        StringBuilder itemBuilder = new StringBuilder(item);
+                        while (itemBuilder.length() < 4) itemBuilder.insert(0, "0");
+                        item = itemBuilder.toString();
+                        return item;
+                    }).forEach(item -> {
+                TWarehousebillsitemsElabel tWarehousebillsitemsElabel = new TWarehousebillsitemsElabel();
+                tWarehousebillsitemsElabel.setfPid(itemId);
+                tWarehousebillsitemsElabel.setfGPid(id);
+                tWarehousebillsitemsElabel.setfContent(corps.getfNo() + "-" + itemId + "-" + date1 + "-" + item);
+                tWarehousebillsitemsElabel.setfType(type);
+                tWarehousebillsitemsElabel.setfStatus(0);
+                tWarehousebillsitemsElabel.setCreateBy(SecurityUtils.getUsername());
+                tWarehousebillsitemsElabel.setCreateTime(new Date());
+                elabelMapper.insert(tWarehousebillsitemsElabel);
+            });
+            return AjaxResult.success("操作成功");
+        } else {
+            return AjaxResult.error("查询客户信息失败");
+        }
+    }
 }

+ 6 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -3606,4 +3606,10 @@
         <if test="fMarks != null and fMarks != ''">AND item.f_marks = #{fMarks}</if>
         <if test="fBusinessType != null ">AND item.f_business_type = #{fBusinessType}</if>
     </select>
+    <select id="selectBYOriginalBillNo" resultMap="TWarehousebillsResult">
+        <include refid="selectTWarehousebillsVo"/>
+        WHERE
+           del_flag = '0'
+          and f_billno = #{originalBillNo}
+    </select>
 </mapper>

+ 1 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -598,7 +598,6 @@
             and item.f_storage_fee_deadline IS NULL
             and item.f_bsdate &lt;= #{warehouse.fBillingDeadline}
             and IF(ware.f_billtype = 'SJCK', item.f_billstatus = 40, item.f_billstatus = 6)
-            and IF(item.f_billingway = '7', leg.f_qtyblc = 0, leg.f_qtyblc &gt;= 0)
             <if test="warehouse.fGoodsid != null and warehouse.fGoodsid != ''">and item.f_goodsid = #{warehouse.fGoodsid}</if>
             <if test="warehouse.fWarehouseid != null and warehouse.fWarehouseid != ''">and ware.f_warehouseid = #{warehouse.fWarehouseid}</if>
             <if test="warehouse.fTrademodeid != null and warehouse.fTrademodeid != ''">and ware.f_trademodeid = #{warehouse.fTrademodeid}</if>
@@ -606,6 +605,7 @@
             <if test="warehouse.fShipper != null and warehouse.fShipper != ''">and item.f_shipper like concat('%',#{warehouse.fShipper},'%')</if>
         </where>
     </select>
+    <!--and IF(item.f_billingway = '7', leg.f_qtyblc = 0, leg.f_qtyblc &gt;= 0)-->
 
     <select id="warehousebillsitemsWarehouselocidSize" resultType="java.lang.Integer">
         SELECT