|
@@ -29,6 +29,8 @@ import com.ym.mec.util.ini.IniFileUtil;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.redisson.api.RBucket;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -44,6 +46,7 @@ import java.math.BigDecimal;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -63,6 +66,8 @@ public class FinancialExpenditureServiceImpl extends BaseServiceImpl<Long, Finan
|
|
|
private TeacherDao teacherDao;
|
|
|
@Autowired
|
|
|
private FinancialExpenditureService financialExpenditureService;
|
|
|
+ @Autowired
|
|
|
+ private RedissonClient redissonClient;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, FinancialExpenditure> getDAO() {
|
|
@@ -225,6 +230,12 @@ public class FinancialExpenditureServiceImpl extends BaseServiceImpl<Long, Finan
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void syncOaPayLog(Integer workOrderId,String fileUrl) throws Exception {
|
|
|
+ //防止幂等
|
|
|
+ String key = "syncOaPayLog:" + workOrderId;
|
|
|
+ RBucket<Object> bucket = redissonClient.getBucket(key);
|
|
|
+ if (!bucket.trySet(workOrderId, 2L, TimeUnit.SECONDS)) {
|
|
|
+ throw new BizException("正在同步oa审批记录,请勿重复操作");
|
|
|
+ }
|
|
|
PWorkOrderInfo pWorkOrderInfo = financialExpenditureDao.getWorkOrderInfo(workOrderId);
|
|
|
if (pWorkOrderInfo != null){
|
|
|
Integer hasFinancial = financialExpenditureDao.findByBatchNoAndProcessNo(workOrderId);
|
|
@@ -320,7 +331,7 @@ public class FinancialExpenditureServiceImpl extends BaseServiceImpl<Long, Finan
|
|
|
financialExpenditure.setAmount(financialExpenditure.getAmount().add(new BigDecimal(Double.parseDouble(o.toString()))));
|
|
|
continue;
|
|
|
}
|
|
|
- }else if(name.contains("情况说明")){
|
|
|
+ }else if(name.contains("情况说明") || name.contains("事由") ){
|
|
|
Object o = hashMap.get(inputDto.getModel());
|
|
|
if(Objects.nonNull(o) && StringUtils.isNotEmpty(o.toString())){
|
|
|
financialExpenditure.setCause(o.toString());
|