1
0

9 Commity 6c8c91baf8 ... 46dbd7525c

Autor SHA1 Správa Dátum
  zhouyy 46dbd7525c Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper 3 týždňov pred
  zhouyy f1edbc2a8a 订单 3 týždňov pred
  zhouyy bcd7fa040d Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper 3 týždňov pred
  zhouyy cad8ea056f 订单 3 týždňov pred
  zhouyy 064cddf4bd 定时任务修改 3 týždňov pred
  zhouyy a8bfb07554 定时拉取数据修改 3 týždňov pred
  zhouyy f67b26adef Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper 3 týždňov pred
  zhouyy fa87f91358 定时拉取数据修改 3 týždňov pred
  zhouyy ed92ae40c0 定时任务修改 3 týždňov pred

+ 10 - 9
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/controller/DataCollectController.java

@@ -43,15 +43,15 @@ public class DataCollectController {
 
     static {
         HikariConfig sqlServerConfig = new HikariConfig();
-        sqlServerConfig.setJdbcUrl("jdbc:sqlserver://172.168.10.84:1433;databaseName=UFDATA_001_2023;encrypt=true;trustServerCertificate=true");
-        sqlServerConfig.setUsername("zhangyuhua");
-        sqlServerConfig.setPassword("ZC12zyh18");
+        sqlServerConfig.setJdbcUrl("jdbc:sqlserver://192.168.0.174:1433;databaseName=UFDATA_001_2023;encrypt=true;trustServerCertificate=true");
+        sqlServerConfig.setUsername("gongshi");
+        sqlServerConfig.setPassword("Sgh-110c");
         sqlServerConfig.setMaximumPoolSize(5);
         sqlServerDataSource = new HikariDataSource(sqlServerConfig);
 
 
         HikariConfig mysqlConfig = new HikariConfig();
-        mysqlConfig.setJdbcUrl("jdbc:mysql://172.168.10.37:3306/DHG?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false");
+        mysqlConfig.setJdbcUrl("jdbc:mysql://172.168.10.37:3306/DHG2?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false");
         mysqlConfig.setUsername("readonly");
         mysqlConfig.setPassword("pasWsordL23");
         sqlServerConfig.setMaximumPoolSize(5);
@@ -284,8 +284,8 @@ public class DataCollectController {
 //                " from mom_orderdetail " +
 //                " where status in (3,4) "
 //                +" ORDER BY MoDId OFFSET ? ROWS FETCH NEXT ? ROWS ONLY ";
-        String sqlQuery = "select mo.cbSysBarCode,SUBSTRING(mo.cbSysBarCode, 8, 15) as orderId,mo.Define24  as projectId,mo.Define25  as projectName,mo.relsdate" +
-                "     ,RIGHT(mo.cbSysBarCode,1) as line,mo.Status,cb.cDeptID,cb.cDepName,mo.MoDId " +
+        String sqlQuery = "select mo.MoDId,SUBSTRING(mo.cbSysBarCode, 8, 15) as orderId,mo.Define24  as projectId,mo.Define25  as projectName,mo.relsdate" +
+                "     ,RIGHT(mo.cbSysBarCode,1) as line,mo.Status,cb.cDeptID,cb.cDepName " +
                 " from mom_orderdetail mo " +
                 " left join ca_batchmap cb on SUBSTRING(mo.cbSysBarCode, 8, 15) = cb.cMOCode and RIGHT(mo.cbSysBarCode,1) = cb.iMOSubSN " +
                 " where mo.Status in (3,4) " +
@@ -340,7 +340,7 @@ public class DataCollectController {
 
     @RequestMapping("/getWorkDayDataList")
     public List<UserFvTime> getWorkDayDataList(@RequestBody PageBO pageBO) {
-        String sqlQuery = " select id,emp_no,attendance_date,earliest_clock_date,last_clock_date,worktime_total_hour,overtime_total_hour " +
+        String sqlQuery = " select id,emp_no,emp_name,attendance_date,earliest_clock_date,last_clock_date,worktime_total_hour,overtime_total_hour " +
                 " from att_work_hour_day  where create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)  order by id limit ?,? ";
         List<UserFvTime> resList = new ArrayList<>();
         SimpleDateFormat sdfAll = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -355,6 +355,7 @@ public class DataCollectController {
                 while (resultSet.next()) {
                     UserFvTime userFvTime = new UserFvTime();
                     userFvTime.setCompanyId(companyId);
+                    userFvTime.setName(resultSet.getString("emp_name"));
                     userFvTime.setProcinstId(resultSet.getString("id"));
                     userFvTime.setUserId(resultSet.getString("emp_no"));
                     userFvTime.setWorkDate(null==resultSet.getDate("attendance_date")?null:LocalDate.parse(sdfYmd.format(resultSet.getDate("attendance_date")), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
@@ -379,7 +380,7 @@ public class DataCollectController {
 
     @RequestMapping("/getLeaveSheetDataSum")
     public String getLeaveSheetDataSum() {
-        String sqlCount = "select count(*) from att_holiday_leave_order where audit_status = 3 and is_delete = 0 and create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)";
+        String sqlCount = "select count(*) from att_holiday_leave_order where audit_status = 3 and is_delete = 0 and create_date >= DATE_SUB(CURDATE(), INTERVAL 14 DAY)";
         int totalCount = 0;
         try (Connection connection = mysqlDataSource.getConnection()) {
             PreparedStatement countStmt = connection.prepareStatement(sqlCount);
@@ -403,7 +404,7 @@ public class DataCollectController {
                 " from att_holiday_leave_order ahlo " +
                 " left join emp_info eie on ahlo.emp_origin_id = eie.origin_id " +
                 " left join emp_info eic on ahlo.create_id = eic.origin_id " +
-                " where ahlo.audit_status = 3 and ahlo.is_delete = 0 and ahlo.create_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) order by ahlo.id limit ?,? ";
+                " where ahlo.audit_status = 3 and ahlo.is_delete = 0 and ahlo.create_date >= DATE_SUB(CURDATE(), INTERVAL 14 DAY) order by ahlo.id limit ?,? ";
         SimpleDateFormat sdfAll = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyy-MM-dd");
         List<LeaveSheet> resList = new ArrayList<>();

+ 3 - 0
fhKeeper/formulahousekeeper/collectdata/src/main/java/com/management/collectdata/entity/UserFvTime.java

@@ -59,6 +59,9 @@ public class UserFvTime extends Model<UserFvTime> {
     @TableField("cancel_normal")
     private Integer cancelNormal;
 
+    @TableField(exist = false)
+    private String name;
+
 
     @Override
     protected Serializable pkVal() {

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/BillController.java

@@ -0,0 +1,22 @@
+package com.management.platform.controller;
+
+import com.management.platform.service.BillService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/bill")
+public class BillController {
+
+    @Resource
+    private BillService billService;
+
+    @RequestMapping("/getPrepayId")
+    public HttpRespMsg getPrepayId(Integer id,HttpServletRequest request) {
+        return billService.getPrepayId(id,request);
+    }
+}

+ 82 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Bill.java

@@ -0,0 +1,82 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Bill extends Model<Bill> {
+	public static void main(String[] args) {
+		Date date = new Date();
+		SimpleDateFormat sdfYmd = new SimpleDateFormat("yyyy-MM-dd");
+		SimpleDateFormat sdfHms = new SimpleDateFormat("HH:mm:ss");
+		String format1 = sdfYmd.format(date);
+		String format2 = sdfHms.format(date);
+		String format = String.format("%sT%s+8:00", format1, format2);
+		System.out.println(format);
+	}
+
+	private static final long serialVersionUID=1L;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.id
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private Integer id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.seq
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String seq;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.user_id
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String userId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.company_id
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String companyId;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.mobile
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String mobile;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.name
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String name;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.pay_type
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private String payType;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.money
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private Integer money;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.result
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private Integer result;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.indate
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private Date indate;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column bill.year
+	 * @mbg.generated  Mon Feb 25 20:47:33 CST 2019
+	 */
+	private Integer year;
+
+}

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/BillMapper.java

@@ -0,0 +1,7 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.Bill;
+
+public interface BillMapper extends BaseMapper<Bill> {
+}

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/BillService.java

@@ -0,0 +1,11 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.Bill;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface BillService extends IService<Bill> {
+    HttpRespMsg getPrepayId(Integer id, HttpServletRequest request);
+}

+ 96 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/BillServiceImpl.java

@@ -0,0 +1,96 @@
+package com.management.platform.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.Bill;
+import com.management.platform.entity.User;
+import com.management.platform.mapper.BillMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.BillService;
+import com.management.platform.util.HttpRespMsg;
+import org.apache.commons.codec.binary.Hex;
+import org.springframework.http.*;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.security.SecureRandom;
+import java.text.SimpleDateFormat;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements BillService {
+
+    private static final String APP_ID = "wxaaf19cfbbe1ff950";
+
+    private static final String MAIN_COM = "https://api.mch.weixin.qq.com";
+
+    private static final String PRE_PAY_URL = "/v3/pay/transactions/jsapi";
+
+    @Resource
+    private BillMapper billMapper;
+
+    @Resource
+    private UserMapper userMapper;
+
+    public static void main(String[] args) {
+        SecureRandom secureRandom = new SecureRandom();
+        // 生成16字节的随机数据
+        byte[] randomBytes = new byte[16];
+        secureRandom.nextBytes(randomBytes);
+        String hex = Hex.encodeHexString(randomBytes).toUpperCase();
+        System.out.println(hex);
+    }
+
+
+    @Override
+    public HttpRespMsg getPrepayId(Integer id, HttpServletRequest request) {
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("TOKEN"));
+        RestTemplate restTemplate = new RestTemplate();
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
+//        headers.add("Authorization", authCode);//TODO 设置签名认证auth
+
+        Bill bill = billMapper.selectById(id);
+        Date now = new Date();
+        String seq = new SimpleDateFormat("yyyyMMddHHmmss").format(now);
+        bill.setSeq(seq + (1000 + bill.getId()%1000));
+
+        Map<String, Object> requestBody = new HashMap<>();
+        requestBody.put("appid", APP_ID);
+//        requestBody.put("mchid", mchid);//TODO 商户号
+//        requestBody.put("description","")//TODO 商品真实信息
+        requestBody.put("out_trade_no",bill.getSeq());
+//        requestBody.put("notify_url",notify_url)//TODO 异步回调地址
+        Map<String,Object> amount = new HashMap<>();
+        amount.put("total",bill.getMoney());// TODO 此处默认库中money为分,如改动
+        amount.put("currency","CNY");
+        requestBody.put("amount",amount);
+
+        Map<String,Object> payer = new HashMap<>();
+//        payer.put("openid",openid);//TODO 用户在商户appid下的唯一标识 user.getXXX
+
+        HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
+        ResponseEntity<String> prepayResponse = restTemplate.exchange(
+                MAIN_COM+PRE_PAY_URL,
+                HttpMethod.POST,
+                requestEntity,
+                String.class
+        );
+        if (prepayResponse.getStatusCode() == HttpStatus.OK) {
+            String prepayJson = prepayResponse.getBody();
+            JSONObject jsonObject = JSON.parseObject(prepayJson);
+            String prepay_id = jsonObject.get("prepay_id").toString();
+            //TODO 更新prepay_id
+        }
+
+        return httpRespMsg;
+    }
+}

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceMonthlyWorktimeServiceImpl.java

@@ -101,7 +101,7 @@ public class FinanceMonthlyWorktimeServiceImpl extends ServiceImpl<FinanceMonthl
                     httpRespMsg.setError("财务尚未完成操作,无法获取cppid");
                     return httpRespMsg;
                 }
-                timeVOList.forEach(t->t.setDateStr(timesheetDate));
+                resList.forEach(t->t.setDateStr(timesheetDate));
                 HttpHeaders insertHeaders = new HttpHeaders();
                 insertHeaders.setContentType(MediaType.APPLICATION_JSON);
 //                Map<String, Object> insertBody = new HashMap<>();

+ 65 - 41
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/DataCollectTask.java

@@ -190,6 +190,7 @@ public class DataCollectTask {
 
 
     @Scheduled(cron = "0 0 1 * * ?")
+//    @Scheduled(cron = "0 05 16 * * ?")
     @Async
     public void sqlServerTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -262,6 +263,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 1 * * ?")
+//@Scheduled(cron = "0 33 16 * * ?")
     public void workDayTask(){
         RestTemplate restTemplate = new RestTemplate();
         String sumUrl = PREFIX_URL+"/dataCollect/getWorkDayDataSum";
@@ -305,18 +307,24 @@ public class DataCollectTask {
                         List<UserFvTime> dataList = listResponse.getBody();
                         if(org.apache.commons.collections.CollectionUtils.isNotEmpty(dataList)){
                             for (UserFvTime userFvTime : dataList) {
+                                if(StringUtils.isBlank(userFvTime.getProcinstId())){
+                                    System.out.println(userFvTime);
+                                }
                                 User tmp = userMap.get(userFvTime.getUserId());
+                                if(null == tmp){
+                                    System.out.println("缺失id=== "+userFvTime.getUserId()+",缺失名字=== "+userFvTime.getName());
+                                }
                                 userFvTime.setUserId(null==tmp?null:tmp.getId());
                             }
-                            List<UserFvTime> realDataList = dataList.stream().filter(t -> null != t.getUserId()).collect(Collectors.toList());
+                            List<UserFvTime> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getUserId())).collect(Collectors.toList());
                             if(!CollectionUtils.isEmpty(realDataList)){
-                                List<String> collect = dataList.stream().map(UserFvTime::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> collect = realDataList.stream().map(UserFvTime::getProcinstId).distinct().collect(Collectors.toList());
                                 List<String> existIds = userFvTimeMapper.getExistIds(collect,specialCompanyId);
                                 if(!CollectionUtils.isEmpty(existIds)){
-                                    toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                    toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
                                 }else{
-                                    toAddList.addAll(dataList);
+                                    toAddList.addAll(realDataList);
                                 }
                                 if(!CollectionUtils.isEmpty(toAddList)){
                                     userFvTimeMapper.batchInsertCollect(toAddList);
@@ -342,6 +350,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 0 2 * * ?")
+//@Scheduled(cron = "0 43 16 * * ?")
     @Async
     public void leaveSheetTask(){
         RestTemplate restTemplate = new RestTemplate();
@@ -390,23 +399,31 @@ public class DataCollectTask {
                                 User opTmp = userMap.get(leaveSheet.getOperatorId());
                                 leaveSheet.setOwnerId(null==ownerTmp?null:ownerTmp.getId());
                                 leaveSheet.setOperatorId(null==opTmp?null:opTmp.getId());
+                                if(null != ownerTmp && null == opTmp){
+                                    leaveSheet.setOperatorId(ownerTmp.getId());
+                                }
+
                             }
-                            List<String> collect = dataList.stream().map(LeaveSheet::getProcinstId).distinct().collect(Collectors.toList());
-                            List<String> existIds = leaveSheetMapper.getExistIds(collect,specialCompanyId);
-                            if(!CollectionUtils.isEmpty(existIds)){
-                                toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                            }else{
-                                toAddList.addAll(dataList);
-                            }
-                            if(!CollectionUtils.isEmpty(toAddList)){
-                                leaveSheetMapper.batchInsert(toAddList);
-                            }
-                            if(!CollectionUtils.isEmpty(toUpdateList)){
-                                for (LeaveSheet tmp : toUpdateList) {
-                                    leaveSheetMapper.updateById(tmp);
+                            List<LeaveSheet> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getOwnerId())).collect(Collectors.toList());
+                            if(!CollectionUtils.isEmpty(realDataList)){
+                                List<String> collect = realDataList.stream().map(LeaveSheet::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> existIds = leaveSheetMapper.getExistIds(collect,specialCompanyId);
+                                if(!CollectionUtils.isEmpty(existIds)){
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                }else{
+                                    toAddList.addAll(realDataList);
+                                }
+                                if(!CollectionUtils.isEmpty(toAddList)){
+                                    leaveSheetMapper.batchInsert(toAddList);
+                                }
+                                if(!CollectionUtils.isEmpty(toUpdateList)){
+                                    for (LeaveSheet tmp : toUpdateList) {
+                                        leaveSheetMapper.updateById(tmp);
+                                    }
                                 }
                             }
+
                             toUpdateList.clear();
                             toAddList.clear();
                         }
@@ -422,6 +439,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 2 * * ?")
+//@Scheduled(cron = "0 46 16 * * ?")
     @Async
     public void sqlServerProjectTypeTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -505,6 +523,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 0 3 * * ?")
+//@Scheduled(cron = "0 48 16 * * ?")
     @Async
     public void sqlServerProjectTask() {
         RestTemplate restTemplate = new RestTemplate();
@@ -655,6 +674,7 @@ public class DataCollectTask {
     }
 
     @Scheduled(cron = "0 30 3 * * ?")
+//@Scheduled(cron = "0 20 17 * * ?")
     @Async
     public void businessTripTask(){
         RestTemplate restTemplate = new RestTemplate();
@@ -704,32 +724,36 @@ public class DataCollectTask {
                                 User ownerTmp = userMap.get(businessTrip.getOwnerId());
                                 businessTrip.setOwnerId(null==ownerTmp?null:ownerTmp.getId());
                             }
-                            List<String> collect = dataList.stream().map(BusinessTrip::getProcinstId).distinct().collect(Collectors.toList());
-                            List<String> existIds = businessTripMapper.getExistIds(collect,specialCompanyId);
-                            if(!CollectionUtils.isEmpty(existIds)){
-                                toUpdateList.addAll(dataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                                toAddList.addAll(dataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
-                            }else{
-                                toAddList.addAll(dataList);
-                            }
-                            if(!CollectionUtils.isEmpty(toAddList)){
+                            List<BusinessTrip> realDataList = dataList.stream().filter(t -> StringUtils.isNotBlank(t.getOwnerId())).collect(Collectors.toList());
+                            if(!CollectionUtils.isEmpty(realDataList)){
+                                List<String> collect = realDataList.stream().map(BusinessTrip::getProcinstId).distinct().collect(Collectors.toList());
+                                List<String> existIds = businessTripMapper.getExistIds(collect,specialCompanyId);
+                                if(!CollectionUtils.isEmpty(existIds)){
+                                    toUpdateList.addAll(realDataList.stream().filter(t -> existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                    toAddList.addAll(realDataList.stream().filter(t -> !existIds.contains(t.getProcinstId())).collect(Collectors.toList()));
+                                }else{
+                                    toAddList.addAll(realDataList);
+                                }
+                                if(!CollectionUtils.isEmpty(toAddList)){
 //                                businessTripMapper.batchInsert(toAddList);
-                                for (BusinessTrip businessTrip : toAddList) {
-                                    businessTripMapper.insert(businessTrip);
-                                    BustripProject bustripProject = new BustripProject();
-                                    bustripProject.setBustripId(businessTrip.getId());
-                                    Project project = projectCodeMap.get(businessTrip.getCCcxmNo());
-                                    bustripProject.setProjectId(null == project?null:project.getId());
-                                    bustripProject.setStartDate(businessTrip.getStartDate());
-                                    bustripProject.setEndDate(businessTrip.getEndDate());
-                                    bustripProjectMapper.insert(bustripProject);
+                                    for (BusinessTrip businessTrip : toAddList) {
+                                        businessTripMapper.insert(businessTrip);
+                                        BustripProject bustripProject = new BustripProject();
+                                        bustripProject.setBustripId(businessTrip.getId());
+                                        Project project = projectCodeMap.get(businessTrip.getCCcxmNo());
+                                        bustripProject.setProjectId(null == project?null:project.getId());
+                                        bustripProject.setStartDate(businessTrip.getStartDate());
+                                        bustripProject.setEndDate(businessTrip.getEndDate());
+                                        bustripProjectMapper.insert(bustripProject);
+                                    }
                                 }
-                            }
-                            if(!CollectionUtils.isEmpty(toUpdateList)){
-                                for (BusinessTrip tmp : toUpdateList) {
-                                    businessTripMapper.updateById(tmp);
+                                if(!CollectionUtils.isEmpty(toUpdateList)){
+                                    for (BusinessTrip tmp : toUpdateList) {
+                                        businessTripMapper.updateById(tmp);
+                                    }
                                 }
                             }
+
                             toUpdateList.clear();
                             toAddList.clear();
                         }

+ 6 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/BillMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.management.platform.mapper.BillMapper">
+
+</mapper>