Browse Source

凯和商务端箱导入修改

lazhaoqian 4 years ago
parent
commit
9c3c0f51e4

+ 7 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/controller/shipping/controller/KHTWarehousebillsController.java

@@ -349,15 +349,16 @@ public class KHTWarehousebillsController extends BaseController
      * @throws Exception
      */
     @PostMapping(value = "/importCreate")
-    public AjaxResult importCreateCompanyMsgNew(@RequestParam("file") MultipartFile file)throws Exception
+    public AjaxResult importCreateCompanyMsgNew(@RequestParam("file") MultipartFile file,
+                                                @RequestParam("fId") Long fId)throws Exception
     {
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        try {
-            AjaxResult ajaxResult = tWarehousebillsService.importCreateCompanyMsgNew(file, loginUser);
+//        try {
+            AjaxResult ajaxResult = tWarehousebillsService.importCreateCompanyMsgNew(file, loginUser,fId);
             return ajaxResult;
-        }catch (Exception e){
-            return AjaxResult.error("导入失败");
-        }
+//        }catch (Exception e){
+//            return AjaxResult.error("导入失败");
+//        }
     }
     /**
      * 下载箱信息导入模板

+ 7 - 0
ruoyi-shipping/src/main/java/com/ruoyi/shipping/mapper/TCntrnoMapper.java

@@ -21,6 +21,13 @@ public interface TCntrnoMapper
      * @return 集装箱号
      */
     public TCntrno selectTCntrnoById(Long fId);
+    /**
+     * 查询集装箱号
+     *
+     * @param fNo 集装箱号箱号
+     * @return 集装箱号
+     */
+    public TCntrno selectTCnTrNoByfNo(@Param("fNo") String fNo);
 
     /**
      * 查询集装箱号列表

+ 52 - 0
ruoyi-shipping/src/main/resources/mapper/shipping/TCntrnoMapper.xml

@@ -201,6 +201,58 @@
         LEFT JOIN t_address address ON address.f_id = tc.f_updateaddress
         where tc.f_id = #{fId}
     </select>
+    <select id="selectTCnTrNoByfNo" parameterType="Long" resultMap="TCntrnoResult">
+        SELECT
+        tc.f_id,
+        tc.f_no,
+        tc.f_typeid,
+        tc.f_sealno,
+        t.f_name typeidName,
+		t.f_cntrsize cntrsize,
+		prs.dict_label cntrsizeName,
+        tc.f_owner,
+        pro.dict_label ownerName,
+        tc.f_source,
+        sd.dict_label sourceName,
+        tc.f_rent,
+        sdd.dict_label rentName,
+        tc.f_updatetime,
+        tc.f_updateaddress,
+        address.f_name addressName,
+        tc.f_updateEF,
+        sdda.dict_label updateEFName,
+        tc.f_cntrstatus,
+        pr.dict_label cntrstatusName,
+        case when tc.f_status = 'T' then '正常' else '停用' end as f_status,
+        tc.f_opctnstatus,
+        tc.create_by,
+        tc.create_time,
+        tc.update_by,
+        tc.update_time,
+        tc.remark,
+        tc.f_build_box_time,
+        tc.f_box_turtle_year,
+        tc.f_box_turtle_month,
+        tc.f_box_lord,
+        tc.f_pact_deal_horn
+        FROM
+        t_cntrno tc
+        LEFT JOIN sys_dict_data pro ON pro.dict_value = tc.f_owner
+        AND pro.dict_type = 'f_owner'
+        LEFT JOIN sys_dict_data sd ON sd.dict_value = tc.f_source
+        AND sd.dict_type = 'f_source'
+        LEFT JOIN sys_dict_data sdd ON sdd.dict_value = tc.f_rent
+        AND sdd.dict_type = 'f_rent'
+        LEFT JOIN sys_dict_data sdda ON sdda.dict_value = tc.f_updateEF
+        AND sdda.dict_type = 'f_updateEF'
+        LEFT JOIN sys_dict_data pr ON pr.dict_value = tc.f_cntrstatus
+        AND pr.dict_type = 'f_cntrstatus'
+        LEFT JOIN t_cntr t ON tc.f_typeid = t.f_id
+		LEFT JOIN sys_dict_data prs ON prs.dict_value = t.f_cntrsize
+        AND prs.dict_type = 'f_cntrsize'
+        LEFT JOIN t_address address ON address.f_id = tc.f_updateaddress
+        where tc.f_no = #{fNo}
+    </select>
 
     <insert id="insertTCntrno" parameterType="TCntrno">
         insert into t_cntrno

+ 6 - 0
ruoyi-warehouse/pom.xml

@@ -47,6 +47,12 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-shipping</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.5</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

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

@@ -431,7 +431,7 @@ public interface ITWarehouseBillsService {
      * @param file  excel
      * @return  结果
      */
-    public AjaxResult importCreateCompanyMsgNew(MultipartFile file,LoginUser loginUser) throws Exception;
+    public AjaxResult importCreateCompanyMsgNew(MultipartFile file,LoginUser loginUser,Long fId) throws Exception;
 
     /**
      * 提交仓库主表审批

+ 46 - 7
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -170,6 +170,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     private TWarehousebillsfeesLoggerMapper tWarehousebillsfeesLoggerMapper;
     @Autowired
     private TVesselMapper tVesselMapper;
+    @Autowired
+    private TCntrnoMapper tCntrnoMapper;
     private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
 
 
@@ -1836,14 +1838,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     @Override
     @Transactional
-    public AjaxResult importCreateCompanyMsgNew(MultipartFile file,LoginUser loginUser) throws Exception {
+    public AjaxResult importCreateCompanyMsgNew(MultipartFile file,LoginUser loginUser,Long fId) throws Exception {
+        //查询货物信息
+        TWarehousebillsCntr tWarehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrById(fId);
+        if (tWarehousebillsCntr == null){
+            return AjaxResult.success("error","未找到货物信息");
+        }
+        //查询集装箱信息
+        TCntr tCntr = tCntrMapper.selectTCntrById(tWarehousebillsCntr.getfCntrid());
         List<TTemporaryFile> fleetCompanyMsgs = new ArrayList<>();
-
+        List<String> tCnTrNoList = new ArrayList<>();
+        List<String> List = new ArrayList<>();
         InputStream inputStream = null;
         Map<String,Object> map = new HashMap<>();
+        String originalFilename;//文件名
         try {
             inputStream = file.getInputStream();
-            String originalFilename = file.getOriginalFilename();
+            originalFilename = file.getOriginalFilename();
             Workbook workbook = null;
             if (originalFilename.endsWith("xls")){
                 workbook = WorkbookFactory.create(inputStream);
@@ -1878,6 +1889,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                                 return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少箱号",500);*/
                                 break;
                             }
+                            //判断箱号是否存在
+                            TCntrno tCntrno = new TCntrno();
+                            tCntrno.setfNo(cell.getStringCellValue());
+                            List<TCntrno> cnTrNoList= tCntrnoMapper.selectTCntrnoList(tCntrno);
+                            if (CollectionUtils.isEmpty(cnTrNoList)){
+                                tCnTrNoList.add(cell.getStringCellValue());
+                            }
                             companyMsg.setfCntrno(cell.getStringCellValue());
                             break;
                         case "铅封号":
@@ -1936,7 +1954,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                                 return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少箱型",500);*/
                                 break;
                             }
-                            companyMsg.setCntrName(cell.getStringCellValue());
+                            if (tCntr.getfNo().equals(cell.getStringCellValue())){
+                                companyMsg.setCntrName(cell.getStringCellValue());
+                            }else {
+                                List.add(cell.getStringCellValue());
+                                break;
+                            }
                             /*Long fId = tCntrMapper.selectRcntrFId(companyMsg.getCntrName());
                             if (fId != null) {
                                 companyMsg.setfCntrid(fId);
@@ -1949,13 +1972,29 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
                 fleetCompanyMsgs.add(companyMsg);
             }
-            map.put("total",fleetCompanyMsgs.size());
-            map.put("fileName",originalFilename);
         } catch (IOException e) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("上传文件失败,请检查文件是否损坏");
         }
-        return AjaxResult.success("success", map);
+        if (CollectionUtils.isNotEmpty(tCnTrNoList) || CollectionUtils.isNotEmpty(List)){
+            tTemporaryFileMapper.deleteTTemporaryFilefileName(originalFilename,loginUser.getUser().getUserName());
+            String message = "";
+            if (CollectionUtils.isNotEmpty(tCnTrNoList)){
+                StringBuffer stringBuffer = new StringBuffer("箱号不存在的有:");
+                stringBuffer.append(org.apache.commons.lang.StringUtils.join(tCnTrNoList.toArray(), ","));
+                message = message + stringBuffer.toString();
+            }
+            if (CollectionUtils.isNotEmpty(List)){
+                StringBuffer stringBuffer = new StringBuffer("箱型应为:"+tCntr.getfNo()+",不一致的有");
+                stringBuffer.append(org.apache.commons.lang.StringUtils.join(List.toArray(), ","));
+                message = message +","+ stringBuffer.toString();
+            }
+            return AjaxResult.success("error",message);
+        }else {
+            map.put("total",fleetCompanyMsgs.size());
+            map.put("fileName",originalFilename);
+            return AjaxResult.success("success", map);
+        }
     }
 
     /**